The Wims server is composed of a kernel program which is a cgi program (wims.cgi), plus various activity units called ``modules''.
The client browser accesses the server via a http request to wims.cgi, with parameters specifying the name of the module to request, the type of the request, and possibly parameters for the module ; wims.cgi processes the requested module, passing the user parameters to it, and sends the result returned by the module back to the client.
A module may consist of a number of script files grouped in one directory. These scripts are written in a special scripting language: the WIMS language.
The WIMS language contains commands which allow it to call external programs (especially various mathematical softwares) to make sophisticated computations. Such commands are processed by wims.cgi and sent through interface programs which filter the request, check for security breaches, and send back a filtered output.
!instex $$ \left( $matrix \right) $$Moreover, this implementation of dynamic insertions makes future updates possible without modification at module's level. (For example when a better way to render mathematical formula is available, a simple modification at server's level will immediately let all !instex lines take benefit of the new standard.)
factor=!exec pari print(factor($number))Upon execution of this line, the variable will be replaced by its current value, then the software package `PARI' will be called with the string `print(factor(<value of $number>))' as command to execute. The output of the program, with the overheads stripped, will be placed as the value of the variable `factor'.
The easiest is the creation of simple interactive exercises which does not really require the knowledge about a computer language, but exercises that can be written in this way have limited power and versatility.
On the other hand, you can also develop fullpower WIMS modules by working entirely on line. For obvious security reasons, you will need a login/password pair which you must ask the site manager to attribute to you. Once logged in, you can create and modify as many modules as you like, in a special development zone. When you have finished the development of a module, you can ask the site manager to move it to a public place.
A wims server is a modular system, with different applications as modules. At each new call to wims, the user has to specify which module he want to access.
A wims module may be an interactive course or interactive exercise (of any level), a computational tool, a dictionary, a mathematical game, a database, or a mixture of the above.
Wims modules are independent from each other. Each module has its own directory, which serves as its address, and contains all the files of this module. Different modules have different authors and different maintainers, and may follow different copyright policies.
There is no relation between modules in a same wims site, except hypertext links which allows one module to access another in various ways.
http://wims.unice.fr/wims/wims.cgi
which usually should be followed by parameters. A call to the main wims.cgi program without parameter will bring up the wims homepage of the site.
Parameters of wims.cgi is a usual http name=value pair, where the name field may be one of the following:
Parameter string  Meaning 

cmd=intro  get introduction page of the module 
cmd=new  open new working session 
cmd=renew  restart working session 
cmd=reply  send reply to the module 
cmd=next  get next exercise (in a working session) 
cmd=config  set preferences 
cmd=help  get contextual help 
cmd=hint  get contextual hint 
cmd=resume  resume work (e.g. after help) 
cmd=getins  get dynamic insertions: internal use by the server. Not to be used by modules. 
http://wims.unice.fr/~wims/wims.cgi?cmd=new&+module=tool/algebra/factor.encalls the wims server at wims.unice.fr, with `new' as the value of `cmd', `tool/algebra/factor.en' as the module name.
Each wims module has a private home directory in which go all the files of this module.
A module must have at least the following files:And it may often contain the following (optional) files too:
There may be any number of other files, like a README file, one or more help pages, an about page, one or more graphics files, files called by one of the above mandatory or optional files, etc.
The files var.init and var.proc, as well as any files called by these two files, are variable processing files.
A variable processing file is divided into lines, separated by nonescaped newline characters. A newline character can be escaped by the character \, in which case it does not separate the two lines before and after it.
Every line of a variable processing file must be one of the following:The files main.phtml and intro.phtml, as well as any files called by these two files, are phtml files (programmable html).
A phtml file is an ordinary html file, except for lines whose first nonspace character is a ! or a :.
Lines can be escaped by \, just as in the case of a variable processing file.
A line starting with : is a label line, as in the case of a variable processing file.
A line starting with ! is a command line, as in the case of a variable processing file. To the difference that if the command produces an output string, this output will be inserted into the html page, at the place of the line.
Lines not of the above two types will be sent to the http client, after substitution of variables.
A variable may be defined or modified in a variable processing file, or by the commands !let and !default.
Variable names can contain any alphanumeric character, as well as the underscore character _. There is a limit to the length of variable names, and a limit to the length of values. (Limits depending on server configuration.)
Variable substitution can be done anywhere in a variable processing file or a phtml file (even in the name field of a variable definition line). A word preceeded by the character $ is considered to be a variable name, and will be replaced by its value when the line containing it is processed.
Special rules of variable substitution:
3*$(alpha$(i)beta)*xwill become
3*pi*xafter substitution.
Array addressing: if the variable l contains a commaseparated list a,b,c,d,e, then the string $(i[3]) gives c after substitution, and $(i[2 to 4]) tives b,c,d, etc.
Twodimensional array addressing is also available: if
$M=x,y,z;a,b,c(a 2x3 matrix), then
$(M[1;3,2])=z,y
$(a$[$i1])*x+$(a$[$i2])will become
pi*x+3after substitution.
Variables  Meaning 

module_title  title of the module 
module_description  short description of the module 
module_author  name(s) of author(s) of the module 
module_address  email address of the (principal) author 
module_maintainer  name of the actual maintainer 
module_maintainer_address  email address of the maintainer 
module_copyright  copyright notice of the module 
module_version  current version of the module 
module_wims_version  minimal wims version required to run this module 
module_language  language of the module (en, fr, de, or ...) 
module_category  category of the module (exercise, tool, course, pedia, recreation, adm, other) 
module_level  level of the module 
module_domain  algebra, analysis, geometry, ... 
module_keywords  keywords, to be placed in the html header 
module_scoring  = yes if the module gives scores according to wims standard 
module_data  address of datamodule 
wims_exec_error  is used to store error messages of the external program called by !exec. For this reason, this variable will be overwritten each time a !exec command is executed. 
wims_module_log  is used for individual module's log files: if this variable is nonempty, wims.cgi will put its content into the module's log file, at the end of the process of the user request. 
wims_version  has a value preset to the current version of the wims server. 
wims_version_date  has a value preset to the last compile date of the server program. 
wims_site_manager  contains the electronic address of the site manager, as defined in the configuration file wims.conf of the site. Modules should not modify this variable. 
wims_print_precision  defines the printing precision when a result of evaluation (via !eval or NaN) is converted to a character string. Default value: 8 (may be modified in wims.conf). 
wims_warn_  ... is ... 
wims_compare_precision 
is used to define error tolerance when wims compares two numerical values.
Formula: !ifval a=b will
return TRUE if abs(ab)*10000<abs(a+b)+1/10000. Default value: 10000 (may be modified in wims.conf). 
wims_texsize  can be used to modify TeX sizes for the module. Default value is 0 (no change). Maybe 1,2,... (increase TeX size) or 1,2... (decrease TeX size). 
wims_homeref_parm  is reserved for future use in the command !homeref. 
wims_homeref_bgcolor  is... 
wims_rawmath_functions  is used to tell rawmath routine that the words contained in the variable value should be treated as function names. These words can be separated either by white space or by comma. 
wims_rawmath_variables  is used to tell rawmath routine that the words contained in the variable value should be treated as math variable names. These words can be separated either by white space or by comma. 
wims_ref_name  gives the addess of the wims serveur (for this server, http://wims.unice.fr/wims/wims.cgi) 
httpd_HTTP_HOST  gives the name of the wims serveur (for this server, wims.unice.fr) 
wims_ref_target  defines the target of the command !href, !homeref, !form. Its value is not automatically reset to empty after the commands. (Defaults to empty string, meaning that the target is the current document.) 
wims_ref_id  defines the id in the command !href (<a ... id=" ">) and in the commands !formradio, !formcheckbox and !getfile. Its value is automatically reset to empty after the commands. (Defaults to empty string) 
wims_ref_class  defines the css class in the command !href (<a ... class=" ">) and in the commands !formradio, !formcheckbox and !getfile. Its value is automatically reset to empty after the command. (Defaults to empty string) 
wims_ref_title  defines the title in the commands !href and !getfile (<a ... title=" ">). Its value is automatically reset to empty after the command. (Defaults to empty string) 
wims_html_mode  can be used before a command as !formradio, !formcheckbox. It forces the results of the formradio to be inside the html mode. The value must be span, li, div. It could be td. 
wims_html_header  is the standardised html header for all its modules' html outputs. Its value is defined in the file html/header.phtml. It is highly recommended that modules use this variable to define their html headers. 
wims_expire  is used to define expiration dates of the pages sent to clients. Don't touch it if you don't know what this means. 
module_init_parm  is... 
wims_ins_alt  if the value is empty, no automatic alt is inserted (should be put in ins_attribut for example); if the value is none, alt="" is inserted. 
jquery_defined  if the value is yes, one can use jquery script (some themes do not use it, so another solution must be found even if there is less functionnality as dragdrop). 
ins_align  defines the manner in which the inline picture is aligned with respect to the line. Possible values: bottom, middle or top. Default is empty (which means bottom). 
ins_attr 
is used to define miscallaneous attributes of a
dynamic insertion. Examples:
ins_attr = align=middle(aligns the middle of the image with the baseline for the current textline), or ins_attr = ismap(coordinates of the click will be passed back to the server; if the link of the element is the wims server, the coordinates will be registered under the variable no_name.) This variable is reset to empty after a dynamic insertion. 
ins_border 
is used to define border width of the html
element IMG resulted from the dynamic insertion. Its value should be a positive
number.
This variable is reset to empty after a dynamic insertion. 
ins_density 
is used to define the density of the dynamic
insertions. Default value: 100x100 .
Avoid using this variable! We are planning to suppress it. Will be replaced by a servermanaged variable. 
ins_format 
can be used to determine the format of the
graphics file of the dynamic insertion: its value should be either
gif or jpg. The default value of this variable is
gif (which can be changed by modifying the file
wims.conf; but such change is not recommended). Some types of dynamic insertions may not be affected by this variable. 
ins_quality  is used to define quality of the graphics convertion used in dynamic insertions. Its value should be between 0 and 100. Affects only dynamic insertions whose graphics format is jpg. 
ins_tag 
is used for dynamic insertions within a form.
In this case define ins_tag=form name where name is the name of the html element IMG within the form (optional). This variable is reset to empty after a dynamic insertion. 
insdraw_size  is the size in pixels for the dynamic insertion. ins_filename is the name of the graphics file of the dynamic insertion (generated by wims). It must be taken just after the command !insdraw 
ins_url  is the url of the graphics file of the dynamic insertion. It must be taken just after the command !insdraw 
insplot_data  is ... 
insplot_font  is ... 
insplot_set  is ... 
insplot_split  is ... 
insplot_transparent  is used to define transparent color for insertions. Default is empty (no transparency). Usual value: 255,255,255(white is transparent). 
wims_backslash_insmath  if the value is yes, it is possible to use the notation \( \) to insert mathematical expressions. 
force_mathml  if the value is yes, force mathml output of tex formulas. 
disable_mathml  If the value is 1, disable mathml output of tex formulas. The variable disable_mathml has priority on force_mathml. 
pari_precision  give the pari precision of the computation with Pari/GP 
print_precision  give the precision of the computed number at the end of the computation. 
maxima_precision  give the maxima precision of the computation with Maxima. 
wims_multiexec  If the value is yes, allow the multiexecution of the mathematical software 
use_comma  If value is 1 moneyprint will use a decimal comma. Any other value or no value will use thedecimal point notation. Only to be used for presentation purposes. 
This section is not yet finished. Sorry.
WIMS commands can be used in variable processing files and phtml files. A command is a word preceeded by the character !.
Commands has two types:
Some commands can be used both as execution command and as variable command.
Commands may accept parameters which are words following it. Parameter fields are separated by white spaces or special words (depending on the command).
The syntax for a range of integers is n1 to n2. For example, 2 to 2 means the whole string except the first and the last characters.
If your module depends on datamodules to run, declare them in the INDEX file, then use this command to check the presence of the datamodules. If the answer is "no", you can take actions to lock further access to your module and/or show error messages.
The syntax for a range of integers is n1 to n2. For example, 2 to 2 means the whole string except the first and the last columns.
When vname contains several names, the values of each will be returned with the same separators as for the names.
For example, if type is words, then the first (resp. second, etc.) variable in namelist will be set to the first (resp. second, etc.) word of string.
The curly braces in string can be nested, but the execution runs from outmost pair to innermost pair.
Available opword:
Special case: if the file name starts with getfile/, the file is written to the getfile subdirectory of the session. This file is then accessible via the command
!href cmd=getfile&special_parm=fname_without_getfile_prefixor a complete url
$wims_ref_name?session=$session&+cmd=getfile&+special_parm=fname_without_getfile_prefix
!fileexists themes/standard/_procs/tt.phtmlor for a trusted module,
!fileexists wimshome/log/classes/2001/Exindex
Special case: if the file name starts with getfile, the file is written to the getfile subdirectory of the session. This file is then accessible via the command
!href cmd=getfile&special_parm=fname_without_getfile_prefix, or a complete url
$wims_ref_name?session=$session&+cmd=getfile&+special_parm=fname_without_getfile_prefix
!breakwithin the for loop breaks it. continue is not yet implemented in this version.
The target of the form can be controlled by the variable wims_ref_target. It can also be defined via an optional word target=.... Note that in this case the target must start with wims_.
The variable wims_form_method which must be either get or post controls the method of the form. This method defaults to post for tool modules, and to get for all other modules.
The CSS class (class='...') of the link can be controlled via the variable wims_ref_class.
The title (title='...') of the link can be controlled via the variable wims_ref_title.
The HTML ID (id='...') of the link can be controlled via the variable wims_ref_id.
It returns the defined value in the string, or the name itself if it appears in string but if there is no = sign following it, or an empty string if name does not appear in string as a word.
value can be a multiword string, if it is enclosed by a pair of parentheses, brackets, curly braces or double quotes. The enclosing parentheses etc. will be removed from the output.
Spaces are allowed before and/or after the = sign.
parm is reserved for future implementation.
In particular, the result can be used as part of a variable name whatever the content of string is (as long as it is not too long).
The target of the reference can be controlled via the variable wims_ref_target. It can also be defined via an optional word target=.... Note that in this case the target must start with wims_.
The CSS class (class='...') of the link can be controlled via the variable wims_ref_class.
The title (title='...') of the link can be controlled via the variable wims_ref_title.
The HTML ID (id='...') of the link can be controlled via the variable wims_ref_id.
Relation  Condition  

== 
string1 == string2 string1 == string2 
with if: true if string1 and string2 are identical. with ifval: true if the numerical evaluations of string1 and of string2 are equal. 
!= 
string1 != string2 string1 <> string2 
with if: true if string1 and string2 are NOT identical. with ifval: true if the numerical evaluations of string1 and of string2 are not equal. 
!=  
<  string1 < string2  true if (the numerical evaluation of) string1 is < string2. 
<=  string1 <= string2  true if (the numerical evaluation of) string1 is string2. 
>  string1 > string2  true if (the numerical evaluation of) string1 is > string2. 
>=  string1 >= string2  true if (the numerical evaluation of) string1 is string2. 
isin  string1 isin string2  true if string1 is a substring of string2. 
notin  string1 notin string2  true if string1 is NOT a substring of string2. 
iswordof  string1 iswordof string2  true if string1 is a word of string2. 
notwordof  string1 notwordof string2  true if string1 is NOT a word of string2. 
isvarof  string1 isvarof string2  true if string1 is a (mathematical) variable of the expression string2. 
notvarof  string1 notvarof string2  true if string1 is NOT a (mathematical) variable of the expression string2. 
isvariableof  string1 isvariableof string2  true if string1 is a (mathematical) variable of the expression string2. 
notvariableof  string1 notvariableof string2  true if string1 is NOT a (mathematical) variable of the expression string2. 
isitemof  string1 isitemof string2  true if string1 is an item of the list string2. 
notitemof  string1 notitemof string2  true if string1 is NOT an item of the list string2. 
islineof  string1 islineof string2  true if string1 is a line of the list string2. 
notlineof  string1 notlineof string2  true if string1 is NOT a line of the list string2. 
issamecase  string1 issamecase string2  true if string1 and string2 are the same text by a comparison insensitive to multiple spaces but casesensitive. 
notsamecase  string1 notsamecase string2  true if string1 and string2 are NOT the same text by a comparison nsensitive to multiple spaces but casesensitive. 
issametext  string1 issametext string2  true if string1 and string2 are the same text by a comparison insensitive to cases, multiple spaces and accented letters. 
notsametext  string1 notsametext string2  true if string1 and string2 are NOT the same text by a comparison insensitive to cases, multiple spaces and accented letters. 
The syntax for a range of integers is n1 to n2. For example, 2 to 2 means the whole string except the first and the last items.
The computation is made from (x1,y1) to (x2,y2), and points are computed as integer positions in a picture with size xsize,ysize.
Order of the fields is not important. All the fields except levels are mandatory.
The syntax for a range of integers is n1 to n2. For example, 2 to 2 means the whole string except the first and the last lines.
!listfile $module_dir
fname may be either in the module directory (in this case the module directory need not be specified), or in the directory bases.
The first word of the first line in the parameter should be the email address.
The rest of the first line is the recepient name (default to email address).
The second line and up is the mail subject.
This command calls, in the order of priority, one of the following files:
In the second syntax, the substitutions are done with respect to each item in the list v1,v2,....
The variable v should appear in templ as a math variable (that is, with no preceeding character).
For example, the command
!makelist [x;x+1;xx] for x in a,x and y,1,(2,3)gives the result
!makelist [x;x+1;xx] for x in a,x and y,1,(2,3)
Actually wims use Wikipedia as the standard reference encyclopedia.
In the second syntax, the values are given with respect to each item in the list v1,v2,....
The syntax for a range of integers is n1 to n2. For example, 2 to 2 means the whole fname except the first and the last records.
In the second syntax, the values are given with respect to each item in the list v1,v2,....
The function fn should use the variable last to indicate the value of the previous recursion step. And the starting value can be put into the WIMS variable $recursion_start.
Browsers translate & primitives into corresponding (special) characters even when these primitives occur in input or textarea fields. Also, if string contains html tags, they may confuse browsers. You can use this command on the string (usually derived from an earlier user input) before inserting them back into a input or textarea, to avoid the above problems.
This command is useful with exercises where important information is carried by multimedia files (pictures, audios, movies). It can be used to hide the name of the multimedia file that otherwise would give clues to the solution of the problem.
The renamed file must be located within the module, and the filename f should start with $module_dir.
The command returns a string which is the new URL. The file is not effectively copied or renamed on the server.
Under the first syntax, variable substitution is first done on string.
Then all occurences of substring s1 are replaced by s2.
When the keyword internal is absent, the Linux utility sed is called to make the replacements,
therefore regular expressions are accepted in s1 and s2.
Please refer to the man page of sed for details.
Under the second syntax, obj can be char, word, item or line.
Then the word, item or line identified by ident in string is replaced
by s, after variable substitutions.
ident can be a string, in this case all objects (words, items or lines) matching ident
will be replaced. It can also be a number (positive or negative integer n), preceded
by the word number. In this case the object number n will be replaced.
(In the case where n<0, it is the last n th object which is replaced.)
This command can be only used before output starts. Repeated restart is disabled, to avoid infinite loops.
The condition can use words column 1, column 2, etc. to designate commaseparated columns in each row.
fn may have several roots in the interval [v1,v2], but roots too close to each other may be overlooked.
In the second syntax, the values are given with respect to each item in the list v1,v2,....
parm is reserved for future implementation.
In the second syntax, the values are given with respect to each item in the list v1,v2,....
fns may be a commaseparated list of functions.
This command can also be used to make recursions. If the functions fns contain a variable named last, this variable will take the value of the last step each time. And the starting value can be put into the WIMS variable $recursion_start.
If the switch nofn is present, function names will not be listed.
The syntax is the same as for if.
The syntax for a range of integers is n1 to n2. For example, 2 to 2 means the whole string except the first and the last words.
The symbol names are based on corresponding TeX names.
Symbol  Name tt 

, , , ... , ...  $m_alpha, $m_beta, $m_gamma, ... $m_pi, ... $m_omega 
, , , , , , , , , ,  $m_Gamma, $m_Delta, $m_Lambda, $m_Phi, $m_Psi, $m_Pi, $m_Sigma, $m_Theta, $m_Upsilon, $m_Xi, $m_Omega 
, , , , ,  $m_varepsilon, $m_varphi, $m_wp, $m_ell, $m_Re, $m_Im 
, , ,  $m_aleph, $m_infty, $m_nabla, $m_partial 
, , , , ...  $m_AA, $m_CC, $m_RR, $m_QQ, $m_ZZ ... 
, ,... ,...  $m_calA, $m_calB,... $m_calM,... $m_calZ 
, ,... ,...  $m_eufA, $m_eufB,... $m_eufM,... $m_eufZ 
, ,... ,...  $m_eufa, $m_eufb,... $m_eufm,... $m_eufz 
, , , ,  $m_le, $m_ge, $m_pm, $m_times, $m_div 
, , ,  $m_neq, $m_equiv, $m_cong, $m_approx 
, , , , ,  $m_leftarrow, $m_rightarrow, $m_mapsto, $m_Leftarrow, $m_Rightarrow, $m_Leftrightarrow 
, , ,  $m_exists, $m_forall, $m_in, $m_emptyset 
, , , , , , ,  $m_subset, $m_supset, $m_subseteq, $m_supseteq, $m_cap, $m_cup, $m_prec, $m_succ 
, , ,  $m_sum, $m_prod, $m_coprod, $m_surd 
, , , ,  $m_int, $m_oint, $m_Vert, $m_oplus, $m_otimes 
, , ,  $m_bigtriangleup, $m_bigtriangledown, $m_bigvee, $m_bigwedge 
!read slib/matrix/random 3, 5, 10generates a 3×5 matrix with random integer coefficients in [10, 10]. The result is placed in the variable slib_out. To call an slib script from OEF exercises, documents or forum messages, use the function slib().
Only variables prefixed by slib_ are modified by these scripts.
Output  

algebra/partitionconj  Partition conjugate [] 
algebra/partitiondraw  Young diagram drawing of a partition [] 
algebra/partitionlex  Next partition in the lexicographic decreasing order [] 
algebra/slopedraw  Polygone tracé à partir des pentes (dessin) [] 
analysis/inversedomain  Inverse image of domains [] 
analysis/odejs  Draw solutions of a differential system (with jsxgraph). [] 
analysis/odejs2  Draw a solution of a differential system: x' [] 
analysis/odephase  Phase portrait of a differential system [] 
analysis/rungekutta  Equation différentielle (par RungeKutta) experimental en faire une liste sans dessin [] 
analysis/slopefield  Direction field (for example for differential equation system) [] 
chemistry/brut2html  HTML form of the formula of a molécule [] 
chemistry/checkmol  Check Mol [] 
chemistry/chemeq_add  Computes a combination of chemical equations [] 
chemistry/chemeq_compare  Comparing chemical equations [] 
chemistry/chemeq_components  Chemical components [] 
chemistry/chemeq_el  Returns the number of electrons in a redox reaction [] 
chemistry/chemeq_equilibrium  Analysing the equilibrium in chemical formulas [] 
chemistry/chemeq_mass  Molar Mass [] 
chemistry/chemeq_rev  Returns a chemical equation reversed [] 
chemistry/chemeq_rq  Typeset reaction quotients and Nernst laws for chemical equations [] 
chemistry/chemeq_tex  Typeset molecules and chemical equations [] 
chemistry/chemshow  Dessin d'une molécule en 2D [] 
chemistry/cram  Cram representation [] 
chemistry/jmolbutton  Button in Jmol. Has to be inserted AFTER the Jmol applet. [] 
chemistry/jmolcheckbox  Checkbox Button in Jmol [] 
chemistry/jmolradiogroup  Radio Group in Jmol [] 
chemistry/jmolshow  Jmol Applet [] 
chemistry/leftind  left and right indices and exponents [] 
chemistry/molarmass  Molar Mass [] 
chemistry/molecule  Periodic table [] 
chemistry/moleculeViewer  Java Molecule Viewer [] 
chemistry/newman  Newman projection [] 
circuits/complist  List available circuit components [] 
circuits/comppos  Component position information of a circuit type. [] 
circuits/draw  Draw circuit scheme according a circuit type. [] 
circuits/drawcomp  Draw circuit components according to a circuit type. [] 
circuits/drawwire  Draw the fixed circuit wiring of a given circuit type. [] 
circuits/range  Size and range information of a circuit type. [] 
data/columnsort  Sort data according to a column [] 
data/randline  Take a random line of a data file [] 
data/random  Randomly selects a number of (different) objects [] 
data/randrec  Take a random field of a record file [] 
draw/balance  Balance (Roberval) [] 
draw/brokenlinegraph  Draw a continuous stepwise affine function from the points where slpe changes [] 
draw/clock  Draw a clock according to given time [] 
draw/convpixel  Conversion pixel image coordinates  mathematical coordinates [] 
draw/domino  Domino [] 
draw/drtgraduee  Graduatied line [] 
draw/graphviz  Graphviz [] 
draw/graphvizpoints  Coordinates of the nodes of a graph by Graphviz [] 
draw/meter  Meter [] 
draw/polygon  Regular polygon [] 
draw/radar  Radar [] 
draw/randpolygon  Polygone quelconque [] 
draw/range  Range [] 
draw/repdroite  Computes the coordinates of extreme points to draw a line in a frame [] 
draw/repere  Draw a coordinate frame [] 
draw/thermometer  Thermometer [] 
function/bounds  The bound of a real function of one variable within an interval [x1,x2] [] 
function/bounds2  The bound of a real function of two variables within a rectangle [x1,x2],[y1,y2] [] 
function/integrate  Indefinite or definite integration of a function of one variable [] 
games/chessimage  Chessboard [] 
geo2D/geogebra  Geogebra HTML 5 [] 
geo2D/geogebra3  Geogebra Applet [] 
geo2D/ggb2jsxgraph  Geogebra to Jsxgraph [] 
geo2D/jsxgraph  Plugin for JSXGraph [] 
geo2D/squaretile  Square tile [] 
geo3D/3Dviewer  3D Viewer [] 
geo3D/CaR  3D applet with C.a.R [] 
geo3D/Convex3D  Polyhedron applet with Convex3D [] 
geo3D/draw  Polyedron in flydraw [] 
geo3D/drawtile  Lattice of cubes [] 
geo3D/off2jmol  Format off to xyz [] 
geo3D/off2xyz  Format off to xyz [] 
geo3D/polyhedra  Polyhedra applet in C.a.R [] 
geo3D/polyhedradual  Polyhedra applet and its dual in C.a.R [] 
geo3D/threeD  ThreeD Applet [] 
graph/connexcomponent  Connex component of a vertex in a graph [] 
graph/connexity  Connex components of a simple graph [] 
graph/distance  Matrix of diameter of a graph [] 
graph/draw  Graph draw [] 
graph/drawcc  Graph draw with one colored connex component [] 
graph/drawtree  Tree draw [] 
graph/gpt  Oriented graph without circuit [] 
graph/graphviz  Graphviz [] 
graph/path  Path of a graph [] 
graph/randomconnex  random connex graph [] 
graph/randomeuler  random eulerian graph [] 
graph/randtree  Random tree [] 
graph/shortpath  Shortest path of a graph [] 
graphpaper/correct_milli  Graphic paper sheet with red correct plot preloaded [] 
graphpaper/func  One function plot, ready to append to a previously made graph paper [] 
graphpaper/func_milli  Graphic paper sheet with function plot and red correct plot preloaded [] 
graphpaper/imgpoints  Utility for a clickable graphic paper sheet [] 
graphpaper/millimetre  Graphic paper sheet [] 
graphpaper/strings  Prepare strings to be written on a graphic paper sheet [] 
graphpaper/tograph  Utility for a clickable graphic paper sheet [] 
graphpaper/whereclick  Utility for a clickable graphic paper sheet [] 
lang/enword2ipa  IPA transcription of english words [] 
lang/epd2ipa  IPA transcription according to epd ascii codage (for english) [] 
lang/fname  A random firstname [] 
lang/fraccord  Accord of French adjectives and names [] 
lang/frapostrophe  Apostrophe reduction of a French text [] 
lang/frartdef  Transform a French noun into definite form [] 
lang/frcodcoi  Find a random complement of a French verb [] 
lang/frverbconj  The conjugation of a French verb [] 
lang/images  Images in some datamodule [] 
lang/randomword  Output random words in the dictionary [] 
lang/sampa2ipa  IPA transcription according to Sampa Ascii codage (for english) [] 
lang/swac  Insertion of words (audio) from the swac packs [] 
life/frcommodity  Give a random commodity with given price, French [] 
list/selshuf  Selective shuffle [] 
matrix/concate  concatenation [] 
matrix/det  The determinant of a square matrix [] 
matrix/givenrank  Generates a random matrix of given rank [] 
matrix/inverse  The inverse of a square matrix [] 
matrix/invertible  Generates a random invertible matrix [] 
matrix/itriangular  Generates a random invertible triangular matrix [] 
matrix/non0  Generates a random matrix with nonzero coefficients [] 
matrix/orthogonal  Generates a random orthogonal matrix [] 
matrix/random  Generates a random matrix [] 
matrix/trace  The trace of a square matrix [] 
matrix/transpose  The transpose of a matrix [] 
matrix/triangular  Generates a random triangular matrix [] 
matrix/unimodular  Generates a random unimodular matrix [] 
media/audio  Audio insertion [] 
media/dewplayer  Audio insertion with dewplayer [] 
media/player  Audio insertion with hbs_mp3_player [] 
media/player_mp3_multi  Audio insertion with player_mp3_multi [] 
media/video  Video insertion [] 
numeration/babylonien  Ecriture Babylonienne d'un nombre entier [] 
numeration/baseblock  Base blocks in numeration [] 
numeration/basep  Passage de la base dix vers la base p. [] 
numeration/ecriturelettre  Writing of a number in letters. [] 
numeration/ecriturenombre  Ecriture d'un nombre avec regroupement des chiffres par trois. [] 
numeration/egyptien  Ecriture Egyptienne d'un nombre entier [] 
numeration/romain  Numération romaine [] 
oef/blank  Blank [] 
oef/codelim  OEF code length limit register [] 
oef/codename  Register OEF code reply name allow/deny [] 
oef/env  Get an OEF environment variable [] 
oef/insfilename  Output the file name of the last insert [] 
oef/newfile  Save a text in a file [] 
oef/postsrc  OEF code input postpender [] 
oef/presrc  OEF code input prepender [] 
oef/sortorder  Sort order [] 
polynomial/random  Random polynomial [] 
set/subset  Subsets of a set [] 
stat/1d  Computes 1dimensional statistical data [] 
stat/arithmean  Arithmetic mean of statistical data [] 
stat/beta  Generation of beta random data [] 
stat/betacdf  Cumulative distribution function of a Beta law [] 
stat/betainv  Quantiles of a Beta law [] 
stat/betapdf  Probability density function of a Beta law [] 
stat/binomial  Generation of binomial random data [] 
stat/binomialcdf  cumulative distribution function of Binomial law [] 
stat/binomialinv  Quantile of Binomial law [] 
stat/binomialpdf  Probability density function of the binomial law [] 
stat/boxplot  Box plot [] 
stat/cauchy  Generation of Cauchy random data [] 
stat/cauchycdf  Cumulative distribution function of Cauchy law [] 
stat/cauchyinv  Quantile of Cauchy law [] 
stat/cauchypdf  Probability density function of Cauchy law [] 
stat/chi2  Generation of chisquare random data [] 
stat/chi2cdf  Chisquare cumulative distribution function [] 
stat/chi2inv  Quantile of a chisquare distribution [] 
stat/chi2pdf  Chisquare probability density function [] 
stat/correlation  Matrix of correlation [] 
stat/covariance  Matrix of covariance [] 
stat/deviation  Deviation of statistical data [] 
stat/discretelaw  Generation of a discrete law with nonnegative coefficients [] 
stat/effectif  Effectifs of statistical series in classes [] 
stat/empiric  Generation of random numbers with a discrete law [] 
stat/exponential  Generation of exponential random numbers [] 
stat/exponentialcdf  Cumulative distribution function of exponential law [] 
stat/exponentialinv  Quantile of exponential law [] 
stat/exponentialpdf  Probability density function of exponential law [] 
stat/fisher  Generation of Fisher random data [] 
stat/fishercdf  Fisher cumulative distribution function. [] 
stat/fisherinv  Quantiles of a Fisher law (also called Fdistribution) [] 
stat/fisherpdf  Fisher probability density function [] 
stat/freq  Frequencies of statistical data [] 
stat/gamma  Generation of Gamma random data [] 
stat/gammacdf  Cumulative distribution function of Gamma law [] 
stat/gammainv  Quantile of a Gamma distribution [] 
stat/gammapdf  Gamma probability density function [] 
stat/geomean  Geometric mean of data [] 
stat/geometric  Generation of random data with a Geometric distribution on N [] 
stat/geometric1  Generation of random data with a Geometric distribution on N* [] 
stat/geometric1cdf  Cumulative distribution function of a Geometric distribution on N* [] 
stat/geometric1inv  Quantiles of a Geometric law on N* [] 
stat/geometric1pdf  Probability density function of a Geometric law on N* [] 
stat/geometriccdf  Cumulative distribution function of a Geometric law on N [] 
stat/geometricinv  Quantiles of a Geometric law on N [] 
stat/geometricpdf  Probability density function of geometric law on N [] 
stat/harmonic  Harmonic mean of statistical data [] 
stat/histo  Histogram [] 
stat/hypergeometric  Generation of Hypergeometric random data [] 
stat/hypergeometriccdf  Cumulative distribution function of a hypergeometric law [] 
stat/hypergeometricinv  Quantile of hypergeometric law inverse [] 
stat/hypergeometricpdf  Probability density function of a Hypergeometric law [] 
stat/laplace  Generation of Laplace random data [] 
stat/laplacecdf  Laplace cumulative distribution function [] 
stat/laplaceinv  Quantiles of the Laplace law [] 
stat/laplacepdf  Laplace probability density function [] 
stat/linearcong  Generation of linear congruential random integers [] 
stat/logistic  Generation of logistic random data [] 
stat/logisticcdf  Logistic cumulative distribution function [] 
stat/logisticinv  Quantile of the logistic law [] 
stat/logisticpdf  Probability density function of the logistic law [] 
stat/lognormal  Generation of lognormal random data [] 
stat/lognormalcdf  Cumulative distribution function of lognormal law [] 
stat/lognormalinv  Quantile of lognormal law [] 
stat/lognormalpdf  Probability density function of lognormal law [] 
stat/median  Data median [] 
stat/multinomial  Generation of multinomial random data [] 
stat/nbin  Generation of Negative binomial random data [] 
stat/nbincdf  Cumulative distribution function of the Negative Binomial law [] 
stat/nbininv  Quantile of a Negative Binomial law. [] 
stat/nbinpdf  Probability density function of a Negative Binomial law [] 
stat/normal  Generation of Gaussian random data [] 
stat/normalcdf  Cumulative distribution function of the normal distribution [] 
stat/normalinv  Quantile of the normal law [] 
stat/normalpdf  Probability density function of the normal law [] 
stat/pascal  Generation of Pascal random data [] 
stat/pascalcdf  Cumulative distribution function of the Pascal law [] 
stat/pascalinv  Quantile of a Pascal law. [] 
stat/pascalpdf  Probability density function of a Pascal law [] 
stat/piechart  Pie chart [] 
stat/poisson  Generation of random numbers with Poisson law [] 
stat/poissoncdf  Poisson cumulative distribution function [] 
stat/poissoninv  Quantile of a Poisson law [] 
stat/poissonpdf  Probability density function of a Poisson law [] 
stat/posdiscretelaw  Generation of a discrete law with positive coefficients [] 
stat/prod  Product of data [] 
stat/quadratic  Quadratic mean [] 
stat/quantile  Quantile [] 
stat/random  Generation of random numbers [] 
stat/range  Data range [] 
stat/student  Generation of Student random data [] 
stat/studentcdf  Student cumulative distribution function [] 
stat/studentinv  Quantile of a Student law [] 
stat/studentpdf  Probability density function of a Student law [] 
stat/sum  Data sum [] 
stat/variance  Variance [] 
stat/weibull  Generation of Weibull random data [] 
stat/weibullcdf  Cumulative distribution function of Weibull law [] 
stat/weibullinv  Quantile of Weibull law [] 
stat/weibullpdf  Probability density function of Weibull law [] 
text/approximation  Calculate an approximation interval for a given real [] 
text/balloon  Talking Balloons (Cartoon style) [] 
text/cdecomment  Extract comment from a c source code. [] 
text/comblin  Simplify a linear combination [] 
text/crossword  Crossword [] 
text/cutchoice2  Cut out embedded choices for OEF [] 
text/cutchoices  Cut out embedded choices for OEF [] 
text/markerror  For marking words with mistake [] 
text/markgroup  For marking group of words with given explanation [] 
text/marktext  Texte for use with type mark for OEF (word) [] 
text/marktextpartial  For marking some words with given explanation [] 
text/markword  For use with type mark in OEF [] 
text/matrixhtml  Transform a matrix into html matrix (table). [] 
text/matrixinsert  Insert a coefficient in a matrix [] 
text/matrixtex  Matrix in Latex [] 
text/maximamatrix  Transform a matrix to maxima format [] 
text/octavematrix  Transform an octave output matrix into standard format [] 
text/sigunits  Make a representation of a physical quantity with a given number of significative digits [] 
text/spirale  Write on a spirale [] 
text/whitespace  Replace white spaces [] 
triplerelation/tabular  Double entry table for training to relations between three quantities [] 
utilities/date  Date [] 
utilities/mathcalc  Mathcalc [] 
utilities/nopaste  No copypaste [] 
utilities/notepad  Notepad [] 
utilities/tooltip  Tooltip containing an html text which appears when the mouse points on a word. [] 
utilities/trigocalc  Inline Trigonometric calculator [] 
Output  

algebra/partitionconj  Partition conjugate [] 
algebra/partitiondraw  Young diagram drawing of a partition [] 
algebra/partitionlex  Next partition in the lexicographic decreasing order [] 
algebra/slopedraw  Polygone tracé à partir des pentes (dessin) [] 
Output  

analysis/inversedomain  Inverse image of domains [] 
analysis/odejs  Draw solutions of a differential system (with jsxgraph). [] 
analysis/odejs2  Draw a solution of a differential system: x' [] 
analysis/odephase  Phase portrait of a differential system [] 
analysis/rungekutta  Equation différentielle (par RungeKutta) experimental en faire une liste sans dessin [] 
analysis/slopefield  Direction field (for example for differential equation system) [] 
Output  

chemistry/brut2html  HTML form of the formula of a molécule [] 
chemistry/checkmol  Check Mol [] 
chemistry/chemeq_add  Computes a combination of chemical equations [] 
chemistry/chemeq_compare  Comparing chemical equations [] 
chemistry/chemeq_components  Chemical components [] 
chemistry/chemeq_el  Returns the number of electrons in a redox reaction [] 
chemistry/chemeq_equilibrium  Analysing the equilibrium in chemical formulas [] 
chemistry/chemeq_mass  Molar Mass [] 
chemistry/chemeq_rev  Returns a chemical equation reversed [] 
chemistry/chemeq_rq  Typeset reaction quotients and Nernst laws for chemical equations [] 
chemistry/chemeq_tex  Typeset molecules and chemical equations [] 
chemistry/chemshow  Dessin d'une molécule en 2D [] 
chemistry/cram  Cram representation [] 
chemistry/jmolbutton  Button in Jmol. Has to be inserted AFTER the Jmol applet. [] 
chemistry/jmolcheckbox  Checkbox Button in Jmol [] 
chemistry/jmolradiogroup  Radio Group in Jmol [] 
chemistry/jmolshow  Jmol Applet [] 
chemistry/leftind  left and right indices and exponents [] 
chemistry/molarmass  Molar Mass [] 
chemistry/molecule  Periodic table [] 
chemistry/moleculeViewer  Java Molecule Viewer [] 
chemistry/newman  Newman projection [] 
Output  

circuits/complist  List available circuit components [] 
circuits/comppos  Component position information of a circuit type. [] 
circuits/draw  Draw circuit scheme according a circuit type. [] 
circuits/drawcomp  Draw circuit components according to a circuit type. [] 
circuits/drawwire  Draw the fixed circuit wiring of a given circuit type. [] 
circuits/range  Size and range information of a circuit type. [] 
Output  

data/columnsort  Sort data according to a column [] 
data/randline  Take a random line of a data file [] 
data/random  Randomly selects a number of (different) objects [] 
data/randrec  Take a random field of a record file [] 
Output  

draw/balance  Balance (Roberval) [] 
draw/brokenlinegraph  Draw a continuous stepwise affine function from the points where slpe changes [] 
draw/clock  Draw a clock according to given time [] 
draw/convpixel  Conversion pixel image coordinates  mathematical coordinates [] 
draw/domino  Domino [] 
draw/drtgraduee  Graduatied line [] 
draw/graphviz  Graphviz [] 
draw/graphvizpoints  Coordinates of the nodes of a graph by Graphviz [] 
draw/meter  Meter [] 
draw/polygon  Regular polygon [] 
draw/radar  Radar [] 
draw/randpolygon  Polygone quelconque [] 
draw/range  Range [] 
draw/repdroite  Computes the coordinates of extreme points to draw a line in a frame [] 
draw/repere  Draw a coordinate frame [] 
draw/thermometer  Thermometer [] 
Output  

function/bounds  The bound of a real function of one variable within an interval [x1,x2] [] 
function/bounds2  The bound of a real function of two variables within a rectangle [x1,x2],[y1,y2] [] 
function/integrate  Indefinite or definite integration of a function of one variable [] 
Output  

games/chessimage  Chessboard [] 
Output  

geo2D/geogebra  Geogebra HTML 5 [] 
geo2D/geogebra3  Geogebra Applet [] 
geo2D/ggb2jsxgraph  Geogebra to Jsxgraph [] 
geo2D/jsxgraph  Plugin for JSXGraph [] 
geo2D/squaretile  Square tile [] 
Output  

geo3D/3Dviewer  3D Viewer [] 
geo3D/CaR  3D applet with C.a.R [] 
geo3D/Convex3D  Polyhedron applet with Convex3D [] 
geo3D/draw  Polyedron in flydraw [] 
geo3D/drawtile  Lattice of cubes [] 
geo3D/off2jmol  Format off to xyz [] 
geo3D/off2xyz  Format off to xyz [] 
geo3D/polyhedra  Polyhedra applet in C.a.R [] 
geo3D/polyhedradual  Polyhedra applet and its dual in C.a.R [] 
geo3D/threeD  ThreeD Applet [] 
Output  

graph/connexcomponent  Connex component of a vertex in a graph [] 
graph/connexity  Connex components of a simple graph [] 
graph/distance  Matrix of diameter of a graph [] 
graph/draw  Graph draw [] 
graph/drawcc  Graph draw with one colored connex component [] 
graph/drawtree  Tree draw [] 
graph/gpt  Oriented graph without circuit [] 
graph/graphviz  Graphviz [] 
graph/path  Path of a graph [] 
graph/randomconnex  random connex graph [] 
graph/randomeuler  random eulerian graph [] 
graph/randtree  Random tree [] 
graph/shortpath  Shortest path of a graph [] 
Output  

graphpaper/correct_milli  Graphic paper sheet with red correct plot preloaded [] 
graphpaper/func  One function plot, ready to append to a previously made graph paper [] 
graphpaper/func_milli  Graphic paper sheet with function plot and red correct plot preloaded [] 
graphpaper/imgpoints  Utility for a clickable graphic paper sheet [] 
graphpaper/millimetre  Graphic paper sheet [] 
graphpaper/strings  Prepare strings to be written on a graphic paper sheet [] 
graphpaper/tograph  Utility for a clickable graphic paper sheet [] 
graphpaper/whereclick  Utility for a clickable graphic paper sheet [] 
Output  

lang/enword2ipa  IPA transcription of english words [] 
lang/epd2ipa  IPA transcription according to epd ascii codage (for english) [] 
lang/fname  A random firstname [] 
lang/fraccord  Accord of French adjectives and names [] 
lang/frapostrophe  Apostrophe reduction of a French text [] 
lang/frartdef  Transform a French noun into definite form [] 
lang/frcodcoi  Find a random complement of a French verb [] 
lang/frverbconj  The conjugation of a French verb [] 
lang/images  Images in some datamodule [] 
lang/randomword  Output random words in the dictionary [] 
lang/sampa2ipa  IPA transcription according to Sampa Ascii codage (for english) [] 
lang/swac  Insertion of words (audio) from the swac packs [] 
Output  

life/frcommodity  Give a random commodity with given price, French [] 
Output  

list/selshuf  Selective shuffle [] 
Output  

matrix/concate  concatenation [] 
matrix/det  The determinant of a square matrix [] 
matrix/givenrank  Generates a random matrix of given rank [] 
matrix/inverse  The inverse of a square matrix [] 
matrix/invertible  Generates a random invertible matrix [] 
matrix/itriangular  Generates a random invertible triangular matrix [] 
matrix/non0  Generates a random matrix with nonzero coefficients [] 
matrix/orthogonal  Generates a random orthogonal matrix [] 
matrix/random  Generates a random matrix [] 
matrix/trace  The trace of a square matrix [] 
matrix/transpose  The transpose of a matrix [] 
matrix/triangular  Generates a random triangular matrix [] 
matrix/unimodular  Generates a random unimodular matrix [] 
Output  

media/audio  Audio insertion [] 
media/dewplayer  Audio insertion with dewplayer [] 
media/player  Audio insertion with hbs_mp3_player [] 
media/player_mp3_multi  Audio insertion with player_mp3_multi [] 
media/video  Video insertion [] 
Output  

numeration/babylonien  Ecriture Babylonienne d'un nombre entier [] 
numeration/baseblock  Base blocks in numeration [] 
numeration/basep  Passage de la base dix vers la base p. [] 
numeration/ecriturelettre  Writing of a number in letters. [] 
numeration/ecriturenombre  Ecriture d'un nombre avec regroupement des chiffres par trois. [] 
numeration/egyptien  Ecriture Egyptienne d'un nombre entier [] 
numeration/romain  Numération romaine [] 
Output  

oef/blank  Blank [] 
oef/codelim  OEF code length limit register [] 
oef/codename  Register OEF code reply name allow/deny [] 
oef/env  Get an OEF environment variable [] 
oef/insfilename  Output the file name of the last insert [] 
oef/newfile  Save a text in a file [] 
oef/postsrc  OEF code input postpender [] 
oef/presrc  OEF code input prepender [] 
oef/sortorder  Sort order [] 
Output  

polynomial/random  Random polynomial [] 
Output  

set/subset  Subsets of a set [] 
Output  

stat/1d  Computes 1dimensional statistical data [] 
stat/arithmean  Arithmetic mean of statistical data [] 
stat/beta  Generation of beta random data [] 
stat/betacdf  Cumulative distribution function of a Beta law [] 
stat/betainv  Quantiles of a Beta law [] 
stat/betapdf  Probability density function of a Beta law [] 
stat/binomial  Generation of binomial random data [] 
stat/binomialcdf  cumulative distribution function of Binomial law [] 
stat/binomialinv  Quantile of Binomial law [] 
stat/binomialpdf  Probability density function of the binomial law [] 
stat/boxplot  Box plot [] 
stat/cauchy  Generation of Cauchy random data [] 
stat/cauchycdf  Cumulative distribution function of Cauchy law [] 
stat/cauchyinv  Quantile of Cauchy law [] 
stat/cauchypdf  Probability density function of Cauchy law [] 
stat/chi2  Generation of chisquare random data [] 
stat/chi2cdf  Chisquare cumulative distribution function [] 
stat/chi2inv  Quantile of a chisquare distribution [] 
stat/chi2pdf  Chisquare probability density function [] 
stat/correlation  Matrix of correlation [] 
stat/covariance  Matrix of covariance [] 
stat/deviation  Deviation of statistical data [] 
stat/discretelaw  Generation of a discrete law with nonnegative coefficients [] 
stat/effectif  Effectifs of statistical series in classes [] 
stat/empiric  Generation of random numbers with a discrete law [] 
stat/exponential  Generation of exponential random numbers [] 
stat/exponentialcdf  Cumulative distribution function of exponential law [] 
stat/exponentialinv  Quantile of exponential law [] 
stat/exponentialpdf  Probability density function of exponential law [] 
stat/fisher  Generation of Fisher random data [] 
stat/fishercdf  Fisher cumulative distribution function. [] 
stat/fisherinv  Quantiles of a Fisher law (also called Fdistribution) [] 
stat/fisherpdf  Fisher probability density function [] 
stat/freq  Frequencies of statistical data [] 
stat/gamma  Generation of Gamma random data [] 
stat/gammacdf  Cumulative distribution function of Gamma law [] 
stat/gammainv  Quantile of a Gamma distribution [] 
stat/gammapdf  Gamma probability density function [] 
stat/geomean  Geometric mean of data [] 
stat/geometric  Generation of random data with a Geometric distribution on N [] 
stat/geometric1  Generation of random data with a Geometric distribution on N* [] 
stat/geometric1cdf  Cumulative distribution function of a Geometric distribution on N* [] 
stat/geometric1inv  Quantiles of a Geometric law on N* [] 
stat/geometric1pdf  Probability density function of a Geometric law on N* [] 
stat/geometriccdf  Cumulative distribution function of a Geometric law on N [] 
stat/geometricinv  Quantiles of a Geometric law on N [] 
stat/geometricpdf  Probability density function of geometric law on N [] 
stat/harmonic  Harmonic mean of statistical data [] 
stat/histo  Histogram [] 
stat/hypergeometric  Generation of Hypergeometric random data [] 
stat/hypergeometriccdf  Cumulative distribution function of a hypergeometric law [] 
stat/hypergeometricinv  Quantile of hypergeometric law inverse [] 
stat/hypergeometricpdf  Probability density function of a Hypergeometric law [] 
stat/laplace  Generation of Laplace random data [] 
stat/laplacecdf  Laplace cumulative distribution function [] 
stat/laplaceinv  Quantiles of the Laplace law [] 
stat/laplacepdf  Laplace probability density function [] 
stat/linearcong  Generation of linear congruential random integers [] 
stat/logistic  Generation of logistic random data [] 
stat/logisticcdf  Logistic cumulative distribution function [] 
stat/logisticinv  Quantile of the logistic law [] 
stat/logisticpdf  Probability density function of the logistic law [] 
stat/lognormal  Generation of lognormal random data [] 
stat/lognormalcdf  Cumulative distribution function of lognormal law [] 
stat/lognormalinv  Quantile of lognormal law [] 
stat/lognormalpdf  Probability density function of lognormal law [] 
stat/median  Data median [] 
stat/multinomial  Generation of multinomial random data [] 
stat/nbin  Generation of Negative binomial random data [] 
stat/nbincdf  Cumulative distribution function of the Negative Binomial law [] 
stat/nbininv  Quantile of a Negative Binomial law. [] 
stat/nbinpdf  Probability density function of a Negative Binomial law [] 
stat/normal  Generation of Gaussian random data [] 
stat/normalcdf  Cumulative distribution function of the normal distribution [] 
stat/normalinv  Quantile of the normal law [] 
stat/normalpdf  Probability density function of the normal law [] 
stat/pascal  Generation of Pascal random data [] 
stat/pascalcdf  Cumulative distribution function of the Pascal law [] 
stat/pascalinv  Quantile of a Pascal law. [] 
stat/pascalpdf  Probability density function of a Pascal law [] 
stat/piechart  Pie chart [] 
stat/poisson  Generation of random numbers with Poisson law [] 
stat/poissoncdf  Poisson cumulative distribution function [] 
stat/poissoninv  Quantile of a Poisson law [] 
stat/poissonpdf  Probability density function of a Poisson law [] 
stat/posdiscretelaw  Generation of a discrete law with positive coefficients [] 
stat/prod  Product of data [] 
stat/quadratic  Quadratic mean [] 
stat/quantile  Quantile [] 
stat/random  Generation of random numbers [] 
stat/range  Data range [] 
stat/student  Generation of Student random data [] 
stat/studentcdf  Student cumulative distribution function [] 
stat/studentinv  Quantile of a Student law [] 
stat/studentpdf  Probability density function of a Student law [] 
stat/sum  Data sum [] 
stat/variance  Variance [] 
stat/weibull  Generation of Weibull random data [] 
stat/weibullcdf  Cumulative distribution function of Weibull law [] 
stat/weibullinv  Quantile of Weibull law [] 
stat/weibullpdf  Probability density function of Weibull law [] 
Output  

text/approximation  Calculate an approximation interval for a given real [] 
text/balloon  Talking Balloons (Cartoon style) [] 
text/cdecomment  Extract comment from a c source code. [] 
text/comblin  Simplify a linear combination [] 
text/crossword  Crossword [] 
text/cutchoice2  Cut out embedded choices for OEF [] 
text/cutchoices  Cut out embedded choices for OEF [] 
text/markerror  For marking words with mistake [] 
text/markgroup  For marking group of words with given explanation [] 
text/marktext  Texte for use with type mark for OEF (word) [] 
text/marktextpartial  For marking some words with given explanation [] 
text/markword  For use with type mark in OEF [] 
text/matrixhtml  Transform a matrix into html matrix (table). [] 
text/matrixinsert  Insert a coefficient in a matrix [] 
text/matrixtex  Matrix in Latex [] 
text/maximamatrix  Transform a matrix to maxima format [] 
text/octavematrix  Transform an octave output matrix into standard format [] 
text/sigunits  Make a representation of a physical quantity with a given number of significative digits [] 
text/spirale  Write on a spirale [] 
text/whitespace  Replace white spaces [] 
Output  

triplerelation/tabular  Double entry table for training to relations between three quantities [] 
Output  

utilities/date  Date [] 
utilities/mathcalc  Mathcalc [] 
utilities/nopaste  No copypaste [] 
utilities/notepad  Notepad [] 
utilities/tooltip  Tooltip containing an html text which appears when the mouse points on a word. [] 
utilities/trigocalc  Inline Trigonometric calculator [] 
pari  
the PARI group  
http://pari.math.ubordeaux1.fr/  
Use  PARI/GP est un système de calcul formel très répandu, conçu pour des calculs rapides en arithmétique (factorisations, théorie algébrique des nombres, courbes elliptiques...) mais contient aussi un grand nombre de fonctions pour le calcul matriciel, sur les développements limités, les nombres algébriques, etc. ainsi que de nombreuses fonctions transcendantes. 
maxima  
http://maxima.sourceforge.net/  
Use  Maxima is a system for the manipulation of symbolic and numerical expressions, including differentiation, integration, Taylor series, Laplace transforms, ordinary differential equations, systems of linear equations, polynomials, and sets, lists, vectors, matrices, and tensors. Maxima yields high precision numeric results by using exact fractions, arbitrary precision integers, and variable precision floating point numbers. 
graphviz  
Credits  
http://www.graphviz.org/  
Use  Graph visualization is a way of representing structural information as diagrams of abstract graphs and networks. Automatic graph drawing has many important applications in software engineering, database and web design, networking, and in visual interfaces for many other domains. 
gap  
The GAP Group  
http://www.gapsystem.org/  
Use  GAP is a system for computational discrete algebra, with particular emphasis on Computational Group Theory. GAP provides a programming language, a library of thousands of functions implementing algebraic algorithms written in the GAP language as well as large data libraries of algebraic objects. See also the overview and the description of the mathematical capabilities. GAP is used in research and teaching for studying groups and their representations, rings, vector spaces, algebras, combinatorial structures, and more. 
float_calc,integer_calc  
http://www.gnu.org/software/bc/  
Use  interface to bc ; bc l 
yacas  
Credits  
http://yacas.sourceforge.net/homepage.html  
Use  YACAS is an easy to use, general purpose Computer Algebra System, a program for symbolic manipulation of mathematical expressions. It uses its own programming language designed for symbolic as well as arbitraryprecision numerical computations. The system has a library of scripts that implement many of the symbolic algebra operations; new algorithms can be easily added to the library. YACAS comes with extensive documentation (hundreds of pages) covering the scripting language, the functionality that is already implemented in the system, and the algorithms we used. 
jmol  
Use 
geogebra  
Use 
checkmol  
Norbert Haider, norbert.haider@univie.ac.at, modified by ErnstGeorg Schmid  
Use  
Input data  
Output data  
Example 
curvecomp  
Xiao Gang  
Use  Compare two curves 
Input data 
Input parameters: environment. w_curvecomp_1 and w_curvecomp_2: curves to compare, as lists of points. w_curvecomp_xrange and w_curvecomp_yrange: list of 2 integers each. w_curvecomp_tolerance: Maximal tolerance of distances. 
Output data 
Output: 10 double numbers separated by white spaces.  Average distance of curve 1 with respect to curve 2.  Average distance of curve 2 with respect to curve 1.  Maximal distance of curve 1 with respect to curve 2.  Maximal distance of curve 2 with respect to curve 1.  Proportion of curve 1 close to curve 2.  Proportion of curve 2 close to curve 1.  Maximal jump of curve 1.  Maximal jump of curve 2.  Ratio of repetitions found in curve 1. Number 10: Ratio of repetitions found in curve 2. Furthermore, words "fnofx" and/or "fnofy" will appear if curve 2 represents the graph of a function of x (and/or y). Returns empty if one of the curves is degenerated. 
Example 
curvecomp_1=0,92,1,92,2,92,3,92
curvecomp_2=46,41,48,41,50,45
curvecomp_tolerance=40
curvecomp_xrange=11,208
curvecomp_yrange=0,220
curvecomp

cyclicode  
Xiao Gang  
Use  This program generates cyclic code from a polynomial defined over a prime field. It does not check whether the polynomial is primitive or irreducible. 
Input data 
Accepted parameter: 3 words Word 1: field characteristics, limited to 2,3,5,7 Word 2: The polynomial coefficients (except the leading one, from lower degree to higher). Word 3: The starting status (starting from the first bit). 
Output data  
Example 
cyclicode 3 22 10

dicfind  
Xiao Gang  
Use  for adm modules 
Input data  
Output data  
Example 
dicsort  
Xiao Gang  
Use  Sort dictionary 
Input data  for adm modules 
Output data  
Example 
huffman  
Xiao Gang  
Use  This program computes an optimal coding of variable lengths on a given distribution of probabilities, using Huffman algorithm. 
Input data 
Two environment variables wims_exec_parm is a commaseparated list of probability distributions Limited to MAX_ITEMS The input data will be scaled to unit sum w_huffman_radix is the encoding radix, between 2 and MAX_RADIX. 
Output data 
two lines Line 1: Entropy and Average code length, commaseparated Line 2: commaseparated list of codes. 
Example 
huffman_radix=4
huffman 0.16, 0.39, 0.55

lceb  
Lucas Nussbaum, lucas@lucasnussbaum.net  
Use  jeu "le compte est bon" 
Input data  7 integers 
Output data  How to obtain the first number from the six other ones by addition, multiplication, division, substraction 
Example 
lceb 598 6 8 2 5 10 12

matchmol  
Norbert Haider, norbert.haider@univie.ac.at, modified by ErnstGeorg Schmid  
Use  
Input data  
Output data  
Example 
mathexp  
Xiao Gang  
Use  Mathematical expression manipulations for WIMS 
Input data  For the moment, use only in deductio 
Output data  
Example 
moneyprint  
prints a number with fixed amount of decimal places  
Use 
Usage:!exec moneyprint number1,number2,number3....number_n decimal_places \text{A=wims(exec moneyprint number1,number2,number3....number_n decimal_places)} default value "decimal_places = 2" A=!exec moneyprint 123,43.5,23.45665 A=123.00,43.50,23.47 or specified a last "word" A=!exec moneyprint 123,43.5,23.45665 3 A=123.000,43.500,23.457 
Input data  
Output data  
Example 
shortpath  
Xiao Gang  
Use  Finds the shortest paths linking given points 
Input data 
wims_exec_parm is ... . w_shortpath_style : 0: loop to the start 1: arbitrary open path 2: open path with fixed start 3: open path with fixed end 4: open path with fixed start and end 
Output data  
Example 
shortpath_style=0
shortpath 1,3
5,1
3,4
1,1
3,1
4,5

scienceprint  
J.M. Evers  
Use  Prints a number in scientific notation. 
Input data 
Usage: !exec scienceprint number,significant_digits,output_type \text{A=wims(exec scienceprint number,significant_digits,output_type )} output_type can be

Output data  
Example 
voronoi  
Steve J. Fortune  
Use  compute Voronoi diagram or Delaunay triangulation. Voronoi reads the standard input for a set of points in the plane and writes either the Voronoi diagram or the Delaunay triangulation to the standard output. 
Input data  Each input line should consist of two real numbers, separated by white space. 
Output data 
If option t is present, the Delaunay triangulation is produced. Each output line is a triple i j k which are the indices of the three points in a Delaunay triangle. Points are numbered starting at 0. If this option is not present, the Voronoi diagram is produced. There are four output record types. s a b indicates that an input point at coordinates l a b c indicates a line with equation ax + by = c. v a b indicates a vertex at a b. e l v1 v2 indicates a Voronoi segment which is a subsegment of line number l; with endpoints numbered v1 and v2. If v1 or v2 is 1, the line extends to infinity. 
Example 
voronoi t 5 7
2 8
7 6
3 5
1 2
8 1
4 3
6 4

translator  
Xiao Gang  
Use  Versatile translation according to a dictionary 
Input data  for adm modules 
Output data  
Example 
oncechar  
Xiao Gang  
Use  This special program selects words composed by selected characters, each selected character being used at most once in the word. Used in the shell script public_html/bin/dicfind 
Input data  Selected characters are entered by the env var 'oncechar'. Words entered by stdin. Output to stdout. 
Output data  
Example 
Many OpenSource java applets are suitable (or can be easily modified) to work within WIMS, e.g. WIMS can dynamically configure applets, the student actions on the applet can be read from the applet and send back to WIMS as answer (via javascript).
Zirkel/CaR  
R. Grothmann (Zirkel Compass and Ruler)  
In the wimsditribution a slightly modified version of Zirkel is present.  
Use 
SketchEl/WIMSchem  
Alex M. Clark (SketchEl  
A modified version of SketchEl, called WIMSchem is used for several chemistry modules.  
Use  Ready to use OEF answertypes are written. 
Chemistry Input applet  
J.M. Evers  
Applet developed for use within wims. Typical input of linear chemical formulas and equations (H_{2}O)  
Use  Used in chemistry module. 
FlyApplet  
J.M. Evers  
Applet developed for use within wims. Uses a syntax simialar to the fly (insdraw) program. LaTeX capable.  
Use  Used as (interactive) image generator and (function) plotter 
JCM  
David Eck (eck@hws.edu).  
Well known suit of applets.  
Use  Some applets are modified to work within wims. 
Plinko /PlinkoII  
Dr. D.P. Little  
An overview of these applets.  
Use  Two Galton board applets. Sends experimental data to wims. 
MathView  
JOME (Java OpenMath Editor)  
Applet modified to work within wims.  
Use  Configurable mathematical input applet. 
WClock  
J.M. Evers  
Analogue and digital clock.  
Use  Can be configured by wims/random/student. Sends time back to wims 
Ptolomy/Plot  
Edward A. Lee, Christopher Brooks  
Data plotter. Modified for wims as function plotter capable of reading datafiles/functions from wimsserver.  
Use  Very fast, but noninteractive data and function plotter, 
log/front.phtml.template  replace template by the symbol of a language xx  read this page instead of public_html/modules/home/front.phtml.xx so it changes the home page of WIMS for lang=xx 
log/motd.phtml.template  replace template by the symbol of a language xx  General message in the front page of WIMS for lang=xx 
log/manager_msg.phtml.template  replace template by the symbol of a language for xx  message in all classes seen only by class supervisors for lang=xx 
log/wims.conf.access.template  delete .template  limits the access to some ressources for the whole site see public_html/scripts/help/xx/accessconf.phtml for example 
themes/*/local.template  replace template by the symbol of a language xx  can modify the menu in home for lang=xx 
How to add a new anstype (called here _name): Each anstype contains two files, "_name.input" is the input form element, and "_name" is the answer processing file. Specific anstypes need not be put into this directory. One can create a subdirectory "anstype" in the module, then put the files there. Any name will do, but we recommend that modulespecific anstypes use a specific prefix for its names, like "mynumeric", "myfunction", ..., in order to avoid possible confusions. In an oef exercise, the anstype is called by the line \answer{xxx}{yyy}{type=_name}{option=zzz} see later for the intern variables corresponding to the values. The input file should contain the following two definitions. 1. define "anstype=yes". Otherwise the OEF manager will not recognize the existence of the anstype. 2. define the form style using the variable "anstyle". Here are the possible words to declare in this variable. mc multiple choice style. symtext allows symtext processing. numeric the data is numeric. dprompt good answer prompt given under doubleunderlined variable (internal reply__$i) ; in this mode, the good answer is not present by default. nogood never present good answer (because there cannot be). noanswer never present the answer analysis (because there is no good or bad answer) These scripts accept the following input variables. i The number of the reply field. replyname$i The prompt of the form element. reply$i The answer given by the student. replygood$i The good answer given by the author. so the value of the second field of \answer{}{}. replyoption$i Option words. Anstypes are more or less free to define their own recognized option words. In oef exercises, it correspond to the value zzz in {option=zzz} inputsize the second item of the field \embed{} (the first one is r$i ou reply$i). In general, it contains the size of the form element. Moreover, if no comparison is wanted, the answer processing file can have a calling parameter "nocompare" (not useful in oef exercices). Output variables of the answer processing file: Test Put "bad $i" if the good answer given by the author is not understandable. test Put "NaN" followed possibly by an error indicator, if the answer given by the student is not understandable. diareply$i Diagnostics result. Possible values: "good", "bad". precreply$i If the answer misses the good result just by a problem of precision, put "yes" to this variable and put "bad" to diareply$i. In the computation of the score, a coefficient depending on the level is introduced. In thise case, one must not advance freegot at all. partialgood$i If the answer should be considered as partially good, put "yes" to this variable and put "good" to diareply$i. It has no consequence on the calculation of the real score (use freegot for that). freegot This is a numerical variable. Its content is incremented by 1 if the answer is 100% OK, none if it is false, or anything between 0 and 1 for partially good answer. It is not recommended to decrement this value, nor to increment it more than 1. The real score is computed using it. So, partialgood$i=yes + diareply$i=good + freegot advances of a number strictly between 0 et 1 or !advance precgood + diareply$i=bad + fregot=0 + precreply$i=yes There are also some optional output variables (they can be left empty). replyGood$i This variable can be defined for the good answer shown to the students after replying to the exercise, if it should be different than the real replygood$i. It is not shown in the analysis of the answer for false student answer if dprompt is declared in anstyle. m_reply$i This variable can be defined for the answer shown back in the oef variable reply$i, if it should be different than the real answer typed in. reply_$i The answer of the student shown in the html page in place of \embed{} or in the analysis zone (for oef exercises). reply__$i A special prompt in the analysis of the answer to show when dprompt is declared in anstyle. If it is empty, its value is the value of reply_$i m_sc_reply$i by default 0, 0.5 or 1 according to diareply$i, partialgood$i and partialgood$i. Can be set to special values. Give the possibility to the developer of exercises to give feedbacks without testing again. There are also some variables which can be used (new/2009) oef_formnosubmit: if yes, no "Send answer" button appear. oef_js_submit: can be used to put javascript in the answer button, the line onclick="javascript:$oef_js_submit;" will be present in this button (in test). oef_anstype_css: style css (what is inside ) will be include at the end of the web page. If the following variables are defined in the file _name.input, they can be reused in the file _name : oef_applet_option oef_applet_command oef_fill_option oef_answer_option1 ..., (for reuse applet options or embed options for example, if one wants to use the anstype several times in the same html page, it is recommanded to use oef_answer_option$i indexed on the numero of the answer.) If you use an external software, use the variable ans_require (best if there is a version number). Add the help in scripts/help/anstype and scripts/help/anstype.$lang and in the list help/$lang/reply.phtml
To add a theme: 1. Decide on the name of the theme. If the theme is not intended for publication, please put it under the subdirectory "local": local/1, local/YourName, etc. Say the name is "local/1". 2. Copy the content of public_html/themes/standard to public_html/themes/local/1, and modify.  un fichier css global est créé par le script mkcss.pl dans themes. Ce script concate et minimise les fichiers css dont la liste est dans le fichier css.css.template (respecter la syntaxe ...). Vous pouvez ainsi utiliser des fichiers css communs dans themes/_css des fichiers d'autres thèmes (à manier avec précaution) ou dans le répertoire local/1/_css de votre thème.  Si vous désirez garder certains fichiers sans changement, il est conseillé de faire plutôt un changement de fichiers. Par exemple, si vous désirez conserver sans modification le fichier supervisor.phtml créezle en écrivant simplement par exemple !changeto themes/standard/supervisor.phtml  Le fichier local.phtml.template une fois changé en local_phtml.fr permet d'inclure des modules administratifs locaux dans les menus  vous pouvez changer le "vocabulaire" dans la version de langue xx (par exemple xx=fr) de la manière suivante: créez un répertoire lang. Si vous désirez changer la définition des noms définis dans html, faitesle dans un fichier lang/home_names.xx . Si les définitions sont faites dans un module administratif, par exemple dans modules/adm/class/exam/lang/names.phtml.xx, faitesle dans un fichier de nom adm_class_exam_lang_names.phtml.xx  il est possible d'utiliser les "widgets" du répertoire themes/_widgets A faire :  nettoyer un peu plus les fichiers pour n'avoir qu'une succession de widgets.  bientôt un appel du type !read themes/_widgets/visitormenubox.phtml lira s'il existe themes/local/1/_widgets/visitormenubox.phtml dans themes/local/1/_widgets et sinon dans themes/_widgets. ####################### wims_homeref_n0 = renouveler, aide, wims_menu_items (liens venant des modules) wims_homeref_n1 : lien sur feuille, séquence, aide, about, resume, divers ! print wims_homeref_n2 : wims_homeref_n3 : était prévu pour des tabs, ne contient rien à supprimer wims_homeref_n4 : contrôle des scores par l'élève wims_homeref_n5 contient pour l'instant uniquement l'aide feedback des exos wims_hm : lien du menu supérieur (headmenu)
# Model for an slib The first part (before :proc) is for the documentation. You can also put the documentation part (everything except `slib_author`) in multiple files (one per `$lang`) in `scripts/help/$lang/slib/...` if you want it to be translated. ``` !if $wims_read_parm!=slib_header !goto proc !endif slib_author=Firstname, Lastname slib_parms=3\ default, explanation\ default, explanation\ default, explanation slib_example=example1\ example2 slib_require= slib_out= result of the slib slib_comment= more explanation !exit
Please take note that WIMS pages are interactively generated; they are not ordinary HTML files. They must be used interactively ONLINE. It is useless for you to gather them through a robot program.