WIMS technical documentation

This document is currently under integral style. You may change it to indexed or folding style. There is also a general help and a paper on WIMS.

-------- Table of Contents --------


What is wims?

WIMS (Www Interactive Multipurpose Server) is an internet server system designed for mathematical and other educational purposes.

The Wims server is composed of a kernel program which is a cgi program (wims.cgi), plus various activity units called ``modules''.

The client 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 eventually parameters for the module. Upon request, 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 recognizable by wims.cgi.

The script language contains also 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 filters the request, checks for security breaches, and sends back a filtered output.

Table of Contents


Examples of the capabilities of wims

The current version 4.01e of wims has several applications which demonstrates (non-exhaustively) what one can do with a wims system.

Table of Contents


Comparing with other approaches

Advantage of wims versus locally installed softwares

  1. No need of software installation and/or update by users.
    All installation and/or update of background software is done on the server side, which can be anywhere on the internet. On the client machine, only a common web browser is required (which needs not to be very up to date).
  2. No need to learn the usage and the syntax of a particular software package.
    As wims uses the html standard for user interface, a user, in particular a student, has only to use his usual knowledge of html browsing (which is now a common knowledge), in order to work on wims applications.
    This is not the case for any of current mathematics softwares; all of them require a training period before the user can work on it. This training period may be more or less lengthy, but we remark that the knowledge of using a particular software is not a universal knowledge, and such a knowledge usually has a short lifespan. Moreover, teaching knowledge about a commercial software contradicts with the principle of commercial neutrality of a public education institution.
  3. It provides a means to collect the knowledge and experience of the whole educational community.
    Wims is a modular system, where each application is a separated module whose links with other modules are done in the usual html way. This allows modules to be developped independently and remotely. It is our hope that as many educators as possible will add their knowledge and experience to the system by contributions in the form of new modules or improvements of existing ones.
  4. It allows student - teacher interactions in several ways.
    Organized under the structure of classes, a wims system allows teacher to assign works for his students, and get reliable informations about the progress (and/or difficulty) of the student in real time. This may allow the teacher to give more personalised guide to the student. The big advantage of such a system based on internet is that there is no site restriction: any work done from any site (local or remote) is valid, and is taken into account.
  5. It provides a dynamic interaction between different components, e.g. between exercises and computing tools.
    For example, practically no software dedicated to exercises can interface a computational tool as easily as wims does.
  6. It can be more powerful than any given software for certain works.
    Because wims can use different (dedicated) software as backend engine, even several softwares for one application or one request.

Disadvantage of wims versus locally installed softwares

  1. Low speed of reaction.
    Because usually every wims response has to travel through internet. This will improve when internet speed improves.
  2. Limited computational power and programming capability.
    If a user has a heavy computational job and/or has to design a complicated script to get his job done, he should work directly on the appropriate software. It is not at all the intention of wims to interface such activities.
  3. Limited capability of the graphical interface.
    The html graphical user interface is not very suited for interactive works.

Advantage of wims versus hand calculators

  1. Easier to use.
    A html page used by wims for user interface is much more comprehensible than any hand calculator.
  2. (Much) more powerful.

Disadvantage of wims versus hand calculators

  1. Non-portability.
    Wims is accessible only to computers connected to internet.

Advantage of wims versus interactive web applications based only on java or javascript

  1. More powerful and more versatile.
    As wims can embed java or javascript programs in its applications, a wisely designed wims application just extends the capability of java or javascript.
    And wims can really do more: even if it is theoretically possible to develop java applications which has the same power as a software used as a backend engine for wims, it would take too much effort to develop (is it reasonable to re-write TeX in java?), and would be so big that it would take forever for an http query to load.
  2. Easier to develop.
    Because wims language is first based on html (easy to learn), with an extension specifically designed for this purpose.
  3. Allows student-supervisor interaction.
    The design of server-based interactivity for users allows the back-end communication with supervisors, and much more (performance analysis, automatic intervention from supervisors, etc).

Disadvantage of wims versus interactive web applications based on java or javascript

  1. Lower speed of reaction.
    Because usually every wims response has to travel through internet. This will improve when internet speed improves. One can also use embedded javascript or java in a wims application, in places where response speed is important.

Table of Contents


Current features of wims

  1. Write html pages with a programmability extension: substitution of variables, conditional branching, etc.
    This wims programmability extension to html does not require any addon or plugin at the browser side, as all the wims commands are treated by the wims server before sending the result to the browser, which will be a standard html page.
    For example, this allows you to define style macros which can be dynamically changed.
    And this extension can cohabit with all the current (and hopefully future) html standards, including java applets, javascripts, embedded objects, dhtml... This is because the wims extension follows a strict line discipline (i.e. a wims command must start at the first word of a line), while html standard is not line-oriented.
    This means that you can even embed wims extensions into javascripts, applets, dhtml...
  2. Dynamic insertions of paints, plots and TeX formatted mathematical formulas into html pages.
    For example, you may insert the following line into your wims-extended html page. At the browser side, the visitor will see a TeX formatted matrix whose content varies with the value of the variable $matrix:
          !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.)
  3. Insplot is now animated!
    Exemple: the tool Tracés Animés .
  4. Direct interfaces to powerful external software packages.
    For example, you may define a variable `factor' by the following line:
          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'.
    Interfaces provided in version 4.01e of wims: PARI, Maxima, MuPAD, Coq, Povray, gnuplot, PostgreSQL, Fly (gif drawing), CALC (by Keith Matthew).
  5. Simple and versatile language.
    The language used for wims modules is an extension of the existing and popular html language. This extension is designed to be simple, easy to use and close to natural language. Synonymes are accepted whenever necessary. For example, to include the content of another file, you don't have to remember whether the command is include as in C, or input as in TeX, because both are valid.
  6. Convenient directives for string manipulations:
    replace with regular expression capability, extraction of a subset from a list of items, shuffle, evaluation of mathematical expressions, etc.
  7. Easy inline mathematical symbols:
    simply type $m_pi for pi, $m_RR for RR, $m_eufM for eufM, $m_le for le, $m_Rightarrow for Rightarrow, etc.
  8. Intelligent treatment of mathematical expressions:
    built-in translation routines to allow error-tolerant expressions like 2y (instead of 2*y) or (x+1)(x-1) (instead of (x+1)*(x-1)), and translations of raw mathematical expressions into beautified html sources (x^3-3*x^2+1*x-5 will become x3-3x2+x-5 , etc.), or TeX sources, etc.
  9. Powerful random capabilities:
    random permutation (shuffle), random record from a datafile, random filename, etc.

Table of Contents


Online development of activities

The system includes several facilities allowing you to create and develop WIMS activities directly online. To do so, you have only to click on the respective links from the home page of the server.

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 full-power 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.

Table of Contents


Basic structure of wims

The central piece of a wims server is a cgi program, usually in the name of wims.cgi. It takes all the http calls to the server, then does the following work:
  1. Call the module asked by the user, and process parameters and variables according to what is defined in the module.
  2. Session management.
  3. Send the result of the process to the user.
  4. Write to different log files.

Modules of wims

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.

How to access a wims server

Wims is accessed by a request to the main cgi program, for example
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:

Example:
http://wims.unice.fr/~wims/wims.cgi?cmd=new&module=tool/algebra/factor.en
calls the wims server at wims.unice.fr, with `new' as the value of `cmd', `tool/algebra/factor.en' as the module name.

How to use the supervisor-side interface

Supervisors of registered classes can maintain their classes and consult results of students via the same web address (the main cgi program), just by logging in as supervisor. All the options are then available via html links and buttons.

Table of Contents


Structure of a wims module

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.


Variable processing files

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 non-escaped new-line characters. A new-line 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:

  1. A comment line, whose first non-space character is either the character #, or ! followed by another !.
  2. A variable definition line, in the form of name=value. The content of value may be a string (if this string contains a new-line character, it must be escaped by the character \), or a wims variable command (which must then start with the character !).
  3. A command line, whose first non-space character is the character !, followed by the command name and optional parameters.
    If the command produces an output string, this output will be ignored.
  4. A label line, whose first non-space character is the character :, followed by the name of the label. Anything following the label name will be considered as comment and ignored by the interpreter.
    Label is used in conjunction with the jumping command !goto.
    A label starting with the character '*' is catch-all, matching any !goto label.
  5. Any line not fitting into one of the above 4 will generate a wims error message.

Phtml files

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 non-space 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.

Table of Contents


Variables in a module

Definition and substitution of variables

Wims variables has only one type: they are all string variables. Numerical evaluation can be done on variables via the variable command !eval.

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:


Reserved variable names

The following names are reserved for their special meanings. They should not be used for internal needs of any module.

Table of Contents


Variables with special meanings

Variables for general purposes by wims server


Variables reserved for dynamic insertions

Table of Contents


Data structure

Arrays

There is no special syntax in wims language for arrays. However, it is possible to design array-like variable structures, with integer or even string subscripts. This can be done using nested variable substitutions. For example, ...

Fields in a string

Wims variables are all string variables. There are three different ways to split a string into fields:

This section is not yet finished. Sorry.

Table of Contents


List of commands

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).


Here is the list of all commands.

Table of Contents


List of inline mathematical symbols

The symbol names are based on corresponding TeX names.

SymbolName
alpha, beta, gamma,... pi,... omega $m_alpha,$m_beta,$m_gamma...$m_pi...$m_omega
Gamma, Delta, Lambda, Phi, Psi, Pi, Sigma, Theta, Xi, Upsilon, Omega $m_Gamma, $m_Delta, $m_Lambda, $m_Phi, $m_Psi, $m_Pi, $m_Sigma, $m_Theta, $m_Upsilon, $m_Xi, $m_Omega
varepsilon, varphi, wp, ell, Re, Im $m_varepsilon, $m_varphi, $m_wp, $m_ell, $m_Re, $m_Im
aleph, infty, nabla, partial $m_aleph, $m_infty, $m_nabla, $m_partial
AA, CC, RR, QQ, ZZ ... $m_AA, $m_CC, $m_RR, $m_QQ, $m_ZZ ...
calA, calB,... calM,... calZ $m_calA, $m_calB,... $m_calM,... $m_calZ
eufA, eufB,... eufM,... eufZ $m_eufA, $m_eufB,... $m_eufM,... $m_eufZ
eufa, eufb,... eufm,... eufz $m_eufa, $m_eufb,... $m_eufm,... $m_eufz
le, ge, pm, times, div $m_le, $m_ge, $m_pm, $m_times, $m_div
neq, equiv, cong, approx $m_neq, $m_equiv, $m_cong, $m_approx
leftarrow, rightarrow, mapsto, Leftarrow, Rightarrow, Leftrightarrow $m_leftarrow, $m_rightarrow, $m_mapsto, $m_Leftarrow, $m_Rightarrow, $m_Leftrightarrow
exists, forall, in, emptyset $m_exists, $m_forall, $m_in, $m_emptyset
subset, supset, subseteq, supseteq, cap, cup, prec, succ $m_subset, $m_supset, $m_subseteq, $m_supseteq, $m_cap, $m_cup, $m_prec, $m_succ
sum, prod, coprod, surd $m_sum, $m_prod, $m_coprod, $m_surd
int, oint, Vert, oplus, otimes $m_int, $m_oint, $m_Vert, $m_oplus, $m_otimes
bigtriangleup, bigtriangledown, bigvee, bigwedge $m_bigtriangleup, $m_bigtriangledown, $m_bigvee, $m_bigwedge

Besides, large parentheses are available under the name of $m_leftpar2, $m_leftpar3,..., $m_leftpar10 and $m_rightpar2, $m_rightpar3,..., $m_rightpar10. They can be used to inclose matrices of 2,3,...,10 rows. Ditto for leftbrace and rightbrace.

Table of Contents


List of slib (library of scripts)

Scripts in this library can be called from modules using the command !read (or !readproc from within a phtml file). For example, the line

 !read slib/matrix/random 3, 5, 10
generates a 3×5 matrix with random integer coefficients in [-5, 5]. 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.

Available scripts in slib
NameEffect
chemistry/chemeq_addComputes a combination of chemical equations [detail]
chemistry/chemeq_compareComparing chemical equations [detail]
chemistry/chemeq_componentsChemical components [detail]
chemistry/chemeq_elReturns the number of electrons in a redox reaction [detail]
chemistry/chemeq_equilibriumAnalysing the equilibrium in chemical formulas [detail]
chemistry/chemeq_massMolar Mass [detail]
chemistry/chemeq_revReturns a chemical equation reversed [detail]
chemistry/chemeq_rqTypeset reaction quotients and Nernst laws for chemical equations [detail]
chemistry/chemeq_texTypeset molecules and chemical equations [detail]
chemistry/molarmassMolar Mass [detail]
chemistry/moleculePeriodic table [detail]
chemistry/moleculeViewerJava Molecule Viewer [detail]
circuits/complistList available circuit components [detail]
circuits/compposComponent position information of a circuit type. [detail]
circuits/drawDraw circuit scheme according a circuit type. [detail]
circuits/drawcompDraw circuit components according to a circuit type. [detail]
circuits/drawwireDraw the fixed circuit wiring of a given circuit type. [detail]
circuits/rangeSize and range information of a circuit type. [detail]
data/columnsortSort data according to a column [detail]
data/randlineTake a random line of a data file [detail]
data/randomRandomly selects a number of (different) objects [detail]
data/randrecTake a random field of a record file [detail]
draw/brokenlinegraphTrace une fonction affine par morceaux continue en connaissant les points de changement de pente [detail]
draw/clockDraw a clock according to given time [detail]
draw/convpixelConversion pixels [detail]
draw/drtgradueeDroite graduée [detail]
draw/rangeRange [detail]
draw/repdroiteCalcule les coordonnées des deux points extrêmes pour tracer une droite dans un repère [detail]
draw/repereTrace un repère [detail]
function/boundsThe bound of a real function of one variable within an interval [x1,x2] [detail]
function/bounds2The bound of a real function of two variables within a rectangle [x1,x2],[y1,y2] [detail]
function/integrateIndefinite or definite integration of a function of one variable [detail]
geo2D/geogebra3Geogebra Applet [detail]
geo3D/3Dviewer3D Viewer [detail]
geo3D/CaR3D applet with C.a.R [detail]
geo3D/Convex3DPolyhedron applet with Convex3D [detail]
geo3D/drawPolyedron in flydraw [detail]
geo3D/off2xyzFormat off to xyz [detail]
geo3D/polyhedraPolyhedra applet in C.a.R [detail]
geo3D/polyhedradualPolyhedra applet and its dual in C.a.R [detail]
geo3D/threeDThreeD Applet [detail]
graph/connexcomponentConnex component of a vertex in a graph [detail]
graph/connexityConnex components of a simple graph [detail]
graph/distanceMatrix of diameter of a graph [detail]
graph/drawGraph draw [detail]
graph/drawccGraph draw with one colored connex component [detail]
graph/drawtreeTree draw [detail]
graph/gptOriented graph without circuit [detail]
graph/randomconnexrandom connex graph [detail]
graph/randomeulerrandom eulerian graph [detail]
graph/randtreeRandom tree [detail]
graph/shortpathShortest path of a graph [detail]
graphpaper/correct_milliGraphic paper sheet with red correct plot preloaded [detail]
graphpaper/funcOne function plot, ready to append to a previously made graph paper [detail]
graphpaper/func_milliGraphic paper sheet with function plot and red correct plot preloaded [detail]
graphpaper/millimetreGraphic paper sheet [detail]
graphpaper/stringsPrepare strings to be written on a graphic paper sheet [detail]
graphpaper/whereclickUtility for a clickable graphic paper sheet [detail]
lang/enword2ipaIPA transcription of english words [detail]
lang/epd2ipaIPA transcription according to epd ascii codage (for english) [detail]
lang/fnameA random first name [detail]
lang/fraccordAccord of French adjectives and names [detail]
lang/frapostropheApostrophe reduction of a French text [detail]
lang/frartdefTransform a French noun into definit form [detail]
lang/frcodcoiFind a random complement of a French verb [detail]
lang/frverbconjThe conjugation of a French verb [detail]
lang/randomwordOutput random words in the dictionary [detail]
lang/sampa2ipaIPA transcription according to Sampa Ascii codage (for english) [detail]
lang/swacInsertion of words (audio) from the swac packs [detail]
life/frcommodityGive a random commodity with given price, French [detail]
list/selshufSelective shuffle [detail]
matrix/concateconcatenation [detail]
matrix/detThe determinant of a square matrix [detail]
matrix/givenrankGenerates a random matrix of given rank [detail]
matrix/inverseThe inverse of a square matrix [detail]
matrix/invertibleGenerates a random invertible matrix [detail]
matrix/itriangularGenerates a random invertible triangular matrix [detail]
matrix/non0Generates a random matrix with non-zero coefficients [detail]
matrix/orthogonalGenerates a random orthogonal matrix [detail]
matrix/randomGenerates a random matrix [detail]
matrix/traceThe trace of a square matrix [detail]
matrix/transposeThe transpose of a matrix [detail]
matrix/triangularGenerates a random triangular matrix [detail]
matrix/unimodularGenerates a random unimodular matrix [detail]
media/audioAudio insertion [detail]
media/dewplayerAudio insertion with dewplayer [detail]
media/playerAudio insertion with hbs_mp3_player [detail]
numeration/ecriturenombreEcriture d'un nombre avec regroupement des chiffres par trois. [detail]
oef/codelimOEF code length limit register [detail]
oef/codenameRegister OEF code reply name allow/deny [detail]
oef/envGet an OEF environment variable [detail]
oef/insfilenameOutput the file name of the last insert [detail]
oef/postsrcOEF code input postpender [detail]
oef/presrcOEF code input prepender [detail]
polynomial/randomRandom polynomial [detail]
stat/1dComputes 1-dimensional statistical data [detail]
stat/arithmeanArithmetic mean of statistical data [detail]
stat/betaGeneration of beta random data [detail]
stat/betacdfCumulative density function of Beta law [detail]
stat/betainvQuantiles of Beta law [detail]
stat/betapdfProbability density function of Beta law [detail]
stat/binomialGeneration of binomial random data [detail]
stat/binomialcdfcumulative distribution function of Binomial law [detail]
stat/binomialinvQuantile of Binomial law [detail]
stat/binomialpdfBinomial law [detail]
stat/cauchyGeneration of Cauchy random data [detail]
stat/cauchycdfcumulative distribution function of Cauchy law [detail]
stat/cauchyinvQuantile of Cauchy law of parameters lambda and sigma [detail]
stat/cauchypdfProbability density function of Cauchy law [detail]
stat/chi2Generation of chi2 random data [detail]
stat/chi2cdfCumulative distribution function of chi2 [detail]
stat/chi2invQuantile of cumulative chi2 distribution [detail]
stat/chi2pdf Probability density function of chi2 [detail]
stat/correlationMatrix of correlation [detail]
stat/covarianceMatrix of covariance [detail]
stat/deviationDeviation of statistical data [detail]
stat/discretelawGeneration of a discrete law with nonnegative coefficients [detail]
stat/effectifEffectifs of statistical series in classes [detail]
stat/empiricGeneration of random numbers with a discrete law [detail]
stat/expoGeneration of exponential random numbers [detail]
stat/exponentialGeneration of exponential random numbers [detail]
stat/exponentialcdfcumulative distribution function of exponential law [detail]
stat/exponentialinvQuantile of exponential law [detail]
stat/exponentialpdfProbability density function of Exponential law [detail]
stat/fisherGeneration of Fisher random data [detail]
stat/fishercdfCumulative density function of Fisher law [detail]
stat/fisherinvQuantiles of Fisher law [detail]
stat/fisherpdfProbability density function of Fisher law [detail]
stat/freqFrequencies of statistical data [detail]
stat/gammaGeneration of Gamma random data [detail]
stat/gammacdfCumulative distribution function of Gamma law [detail]
stat/gammainvQuantile of cumulative gamma distribution [detail]
stat/gammapdfProbability density function of gamma law [detail]
stat/geomeanGeometric mean of data [detail]
stat/geometricGeneration of random data with geometric law on N [detail]
stat/geometric1Generation of random data with geometric law on N* [detail]
stat/geometric1cdfcumulative distribution function of geometric law on N* [detail]
stat/geometric1invQuantiles of a Geometric law on N* [detail]
stat/geometric1pdfProbability density function of Geometric law on N* [detail]
stat/geometriccdfcumulative distribution function of geometric law on N [detail]
stat/geometricinvQuantiles of a Geometric law on N [detail]
stat/geometricpdfProbability density function of Geometric law on N [detail]
stat/harmonicHarmonic mean of statistical data [detail]
stat/histoHistogram [detail]
stat/hypergeometricGeneration of Hypergeometric random data [detail]
stat/hypergeometriccdfcumulative distribution function of hypergeometric law [detail]
stat/hypergeometricinvQuantile of hypergeometric law inverse [detail]
stat/hypergeometricpdfProbability density function of Hypergeometric law [detail]
stat/hypergeominvHypergeometric law inverse [detail]
stat/laplaceGeneration of Laplace random data [detail]
stat/laplacecdfProbability cumulative distribution of laplace law [detail]
stat/laplaceinvQuantiles of laplace law [detail]
stat/laplacepdfProbability density function of laplace law [detail]
stat/linearcongGeneration of linear congruential random integers [detail]
stat/logisticGeneration of logistic random data [detail]
stat/logisticcdfProbability cumulative density function of logistic law [detail]
stat/logisticinvQuantile of logistic law [detail]
stat/logisticpdfProbability density function of logistic law [detail]
stat/lognormalGeneration of lognormal random data [detail]
stat/lognormalcdfCumulative distribution function of log-normal law [detail]
stat/lognormalinvQuantile of of Log-normal law [detail]
stat/lognormalpdfProbability density function of log-normal law [detail]
stat/medianData median [detail]
stat/multinomialGeneration of multinomial random data [detail]
stat/normalGeneration of Gaussian random data [detail]
stat/normalcdfCumulative distribution function of the normal distribution [detail]
stat/normalinvQuantile of Normal law [detail]
stat/normalpdfProbability density function of Normal law [detail]
stat/pascalGeneration of Pascal random data [detail]
stat/pascalcdfcumulative distribution function of Binomial law [detail]
stat/pascalinvQuantile of Negative Binomial law [detail]
stat/pascalpdfNegative Binomial law (Pascal law) [detail]
stat/poissonGeneration of random numbers with Poisson law [detail]
stat/poissoncdfcumulative distribution function of Poisson law [detail]
stat/poissoninvQuantile of Poisson law [detail]
stat/poissonpdfProbability density function of Poisson law [detail]
stat/posdiscretelawGeneration of a discrete law with positive coefficients [detail]
stat/prodProduct of data [detail]
stat/quadraticQuadratic mean [detail]
stat/randomGeneration of random numbers [detail]
stat/rangeData range [detail]
stat/studentGeneration of Student random data [detail]
stat/studentcdfProbability cumulative density function of Student law [detail]
stat/studentinvQuantile of Student law [detail]
stat/studentpdfProbability density function of Student law [detail]
stat/sumData sum [detail]
stat/varianceVariance [detail]
stat/weibullGeneration of Weibull random data [detail]
stat/weibullcdfcumulative distribution function of Weibull law [detail]
stat/weibullinvQuantile of Weibull law [detail]
stat/weibullpdfProbability density function of Weibull law [detail]
text/cdecommentExtract comment from a c source code. [detail]
text/cutchoice2Cut out embedded choices for OEF [detail]
text/cutchoicesCut out embedded choices for OEF [detail]
text/markerrorFor marking words with mistake [detail]
text/markgroupFor marking group of words with given explanation [detail]
text/marktextTexte for use with type mark for OEF (word) [detail]
text/marktextpartialFor marking some group of words with given explanation [detail]
text/markwordFor use with type mark in OEF [detail]
text/matrixtex Matrix in Tex [detail]
text/maximamatrixTransform a matrix to maxima format [detail]
text/octavematrixTransform an octave output matrix into standard format [detail]
text/sigunitsmake a representation of a physical quantity with a given number of significative digits [detail]
text/whitespaceReplace white spaces [detail]
triplerelation/tabularDouble entry table for training to relations between three quantities [detail]
utilities/nopasteNo copy-paste [detail]
utilities/notepadNotepad [detail]
utilities/tooltipTooltip containing an html text which appears when the mouse points on a word. [detail]

Table of Contents


Interfaces to external software packages

This section is not yet available. Sorry.

Table of Contents


This page is not in its usual appearance because WIMS is unable to recognize your web browser.

In order to access WIMS services, you need a browser supporting forms. In order to test the browser you are using, please type the word wims here: and press ``Enter''.

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.

Description: documentation of WWW Interactive Multipurpose Server This is the main site of WIMS (WWW Interactive Multipurpose Server): interactive exercises, online calculators and plotters, mathematical recreation and games

Keywords: wims, mathematics, mathematical, math, maths, interactive mathematics, interactive math, interactive maths, mathematic, online, calculator, graphing, exercise, exercice, puzzle, calculus, K-12, algebra, mathématique, interactive, interactive mathematics, interactive mathematical, interactive math, interactive maths, mathematical education, enseignement mathématique, mathematics teaching, teaching mathematics, algebra, geometry, calculus, function, curve, surface, graphing, virtual class, virtual classes, virtual classroom, virtual classrooms, interactive documents, interactive document, , wims