File:
[LON-CAPA] /
loncom /
html /
adm /
help /
tex /
all_functions_table.tex
Revision
1.19:
download - view:
text,
annotated -
select for diffs
Wed May 27 19:46:44 2020 UTC (4 years, 2 months ago) by
raeburn
Branches:
MAIN
CVS tags:
version_2_12_X,
version_2_11_X,
version_2_11_5_msu,
version_2_11_5,
version_2_11_4_uiuc,
version_2_11_4_msu,
version_2_11_4,
version_2_11_3_uiuc,
version_2_11_3_msu,
version_2_11_3,
HEAD
- Escape underscores so Author manual can be built.
1: \label{all_functions_table}
2:
3: \begin{longtable}{|p{5cm}|p{6.5cm}|p{3.5cm}|p{2cm}|}
4: \hline
5: \textbf{CAPA Functions }
6: &\textbf{LON-CAPA }
7: &\textbf{Descriptions }
8: &\textbf{Differences (if any) }
9: \endhead
10: \hline
11: sin(x), cos(x), tan(x) &\&sin(\$x), \&cos(\$x), \&tan(\$x) &Trigonometric functions where x is in radians. \$x can be a pure number, i.e., you can call \&sin(3.1415) & \\
12: \hline
13: asin(x), acos(x), atan(x), atan2(y,x) &\&asin(\$x), \&acos(\$x), \&atan(\$x), \&atan2(\$y,\$x) &Inverse trigonometric functions. Return value is in radians. For asin and acos the value of x must be between -1 and 1. The atan2 returns a value between -pi and pi the sign of which is determined by y. \$x and \$y can be pure numbers & \\
14: \hline
15: log(x), log10(x) &\&log(\$x), \&log10(\$x) &Natural and base-10 logarithm. \$x can be a pure number & \\
16: \hline
17: exp(x), pow(x,y), sqrt(x) &\&exp(\$x), \&pow(\$x,\$y), \&sqrt(\$x) &Exponential, power and square root, i.e.,ex, xy and /x. \$x and \$y can be pure numbers & \\
18: \hline
19: abs(x), sgn(x) &\&abs(\$x), \&sgn(\$x) &Abs takes the absolute value of x while sgn(x) returns 1, 0 or -1 depending on the value of x. For x$>$0, sgn(x) = 1, for x=0, sgn(x) = 0 and for x$<$0, sgn(x) = -1. \$x can be a pure number & \\
20: \hline
21: erf(x), erfc(x) &\&erf(\$x), \&erfc(\$x) &Error function. erf = 2/sqrt(pi) integral (0,x) et-sq and \emph{ erfx(x)}
22: = 1.0 - \emph{erf(x)}
23: . \$x can be a pure number & \\
24: \hline
25: ceil(x), floor(x) &\&ceil(\$x), \&floor(\$x) &Ceil function returns an integer rounded up whereas floor function returns and integer rounded down. If x is an integer than it returns the value of the integer. \$x can be a pure number & \\
26: \hline
27: min(...), max(...) &\&min(...), \&max(...) &Returns the minimum/ maximum value of a list of arguments if the arguments are numbers. If the arguments are strings then it returns a string sorted according to the ASCII codes & \\
28: \hline
29: factorial(n) &\&factorial(\$n) &Argument (n) must be an integer else it will round down. The largest value for n is 170. \$n can be a pure number & \\
30: \hline
31: N\%M &\$N\%\$M &N and M are integers and returns the remainder (in integer) of N/M. \$N and \$M can be pure numbers & \\
32: \hline
33: sinh(x), cosh(x), tanh(x) &\&sinh(\$x), \&cosh(\$x), \&tanh(\$x) &Hyperbolic functions. \$x can be a pure number & \\
34: \hline
35: asinh(x), acosh(x), atanh(x) &\&asinh(\$x), \&acosh(\$x), \&atanh(\$x) &Inverse hyperbolic functions. \$x can be a pure number & \\
36: \hline
37: /DIS(\$x,''nn'') &\&format(\$x,'nn') &Display or format \$x as nn where nn is nF or nE or nS and n is an integer. & The difference is obvious. \\
38: \hline
39: Not in CAPA &\$expr=\&math\_calculus\_expression() & Creates Math::Calculus::Expression object. Methods are: \$expr->addVariable('x'), \$expr->setExpression('f(x)'), \$expr->simplify, \$expr->getExpression -- see Math::Calculus::Expression documentation at cpan.org for details. & \\
40: \hline
41: Not in CAPA &(\$a,\$u)=\&conv\_eng\_format(\$x,\$b) & Converts numerical value \$x and base unit \$b to answer \$a and corresponding unit \$u in engineering format, i.e., the answer is scaled by powers of ten, and an appropriate prefix from: m u n p f a z y k M G T P E Z Y precedes the base unit. Called in a script block to generate variables to assign to answer and unit attributes of numericalresponse tag. & \\
42: \hline
43: Not in CAPA &\&prettyprint(\$x,'nn','optional target') &Display or format \$x as nn where nn is nF or nE or nS and n is an integer. Also supports the first character being a \$, it then will format the result with a a call to \&dollarformat() described below. If the first character is a , it will format it with commas grouping the thousands. In S mode it will fromat the number to the specified number of significant figures and display it in F mode. In E mode it will attempt to generate a pretty x10\^{}3 rather than a E3 following the number, the 'optional target' argument is optional but can be used to force \&prettyprint to generate either 'tex' output, or 'web' output, most people do not need to specify this argument and can leave it blank. & \\
44: \hline
45: Not in CAPA &\&dollarformat(\$x,'optional target') &Reformats \$x to have a \$ (or $\backslash$\$ if in tex mode) and to have , grouping thousands. The 'optional target' argument is optional but can be used to force \&prettyprint to generate either 'tex' output, or 'web' output, most people do not need to specify this argument and can leave it blank. & \\
46: \hline
47: Not in CAPA &\parbox{6.49cm}{
48: Option 1 - \$best = \&languages() \\
49: Option 2 - @all = \&languages() \\
50: Option 3 - \$best = \&languages($\backslash$@desired\_languages) \\
51: Option 4 - @all = \&languages($\backslash$@desired\_languages) \\
52: }& Returns the best language to use, in the first two options returns the languages codes in the preference order of the user. In the second two examples returns the best matches from a list of desired language possibilities. & \\
53: \hline
54: roundto(x,n) &\&roundto(\$x,\$n) &Rounds a real number to n decimal points. \$x and \$n can be pure numbers & \\
55: \hline
56: &\&cas(\$s,\$e,\$l)&Evaluates the expression \$e inside the symbolic algebra system \$s. Currently, only the Maxima
57: symbolic math system is implemented. \$l is an optional comma-separated list of libraries. Example: \&cas('maxima','6*7')&\\
58: \hline
59: Not in CAPA&\&implicit\_multiplication(\$f)&Adds mathematical multiplication operators to the formula expression \$f where only implicit multiplication is used. Example: \&implicit\_multiplication('2(b+3c)') returns 2*(b+3*c)&\\
60: \hline
61: web(``a'',''b'',''c'') or web(a,b,c) &\&web(``a'',''b'',''c'') or \&web(\$a,\$b,\$c) &Returns either a, b or c depending on the output medium. a is for plain ASCII, b for tex output and c for html output & \\
62: \hline
63: html(``a'') or html(a) &\&html(``a'') or \&html(\$a) &Output only if the output mode chosen is in html format & \\
64: \hline
65: jn(m,x) &\&j0(\$x), \&j1(\$x), \&jn(\$m,\$x), \&jv(\$y,\$x) &Bessel functions of the first kind with orders 0, 1 and m respectively. For jn(m,x), m must be an integer whereas for jv(y,x), y is real. \$x can be a pure number. \$m must be an integer and can be a pure integer number. \$y can be a pure real number &In CAPA, j0, j1 and jn are contained in one function, jn(m,x) where m takes the value of 0, 1 or 2. jv(y,x) is new to LON-CAPA. \\
66: \hline
67: yn(m,x) &\&y0(\$x), \&y1(\$x), \&yn(\$m,\$x), \&yv(\$y,\$x) &Bessel functions of the second kind with orders 0, 1 and m respectively. For yn(m,x), m must be an integer whereas for yv(y,x), y is real. \$x can be a pure number. \$m must be an integer and can be a pure integer number. \$y can be a pure real number &In CAPA, y0, y1 and yn are contained in one function, yn(m,x) where m takes the value of 0, 1 or 2. yv(y,x) is new to LON-CAPA. \\
68: \hline
69: random(l,u,d) &\&random(\$l,\$u,\$d) &Returns a uniformly distributed random number between the lower bound, l and upper bound, u in steps of d. \$l, \$u and \$d can be pure numbers &In CAPA, all the 3 arguments must be of the same type. However, now you can mix the type \\
70: \hline
71: choose(i,...) &\&choose(\$i,...) &Choose the ith item from the argument list. i must be an integer greater than 0 and the value of i should not exceed the number of items. \$i can be a pure integer & \\
72: \hline
73: /MAP(seed;w,x,y,z;a,b,c,d) &\parbox{6.49cm}{
74: Option 1 - \&map(\$seed,[$\backslash$\$w,$\backslash$\$x,$\backslash$\$y,$\backslash$\$z],[\$a,\$b,\$c,\$d]) or \\
75: Option 2 - \&map(\$seed,$\backslash$@mappedArray,[\$a,\$b,\$c,\$d]) \\
76: Option 3 - @mappedArray = \&map(\$seed,[\$a,\$b,\$c,\$d]) \\
77: Option 4 - (\$w,\$x,\$y,\$z) = \&map(\$seed,$\backslash$@a) \\
78: where \$a='A'\\
79: \$b='B'\\
80: \$c='B'\\
81: \$d='B'\\
82: \$w, \$x, \$y, and \$z are variables }&Assigns to the variables \$w, \$x, \$y and \$z the values of the \$a, \$b, \$c and \$c (A, B, C and D). The precise value for \$w .. depends on the seed. (Option 1 of calling map). In option 2, the values of \$a, \$b .. are mapped into the array, @mappedArray. The two options illustrate the different grouping. Options 3 and 4 give a consistent way (with other functions) of mapping the items. For each option, the group can be passed as an array, for example, [\$a,\$b,\$c,\$d] =$>$ $\backslash$@a. &In CAPA, the arguments are divided into three groups separated by a semicolon ;. In LON-CAPA, the separation is done by using [] brackets or using an array @a. Note the backslash ($\backslash$) before the arguments in the second and third groups. \\
83: \hline
84: rmap(seed;a,b,c,d;w,x,y,z) &\parbox{6.49cm}{Option 1 - \&rmap(\$seed,[$\backslash$\$w,$\backslash$\$x,$\backslash$\$y,$\backslash$\$z],[\$a,\$b,\$c,\$d]) or \\
85: Option 2 - \&rmap(\$seed,$\backslash$@rmappedArray,[\$a,\$b,\$c,\$d]) \\
86: Option 3 - @rmapped\_array = \&rmap(\$seed,[\$a,\$b,\$c,\$d]) \\
87: Option 4 - (\$w,\$x,\$y,\$z) = \&rmap(\$seed,$\backslash$@a) \\
88: where \$a='A'\\
89: \$b='B'\\
90: \$c='B'\\
91: \$d='B'\\
92: \$w, \$x, \$y, and \$z are variables } &The rmap functions does the reverse action of map if the same seed is used in calling map and rmap. &In CAPA, the arguments are divided into three groups separated by a semicolon ;. In LON-CAPA, the separation is done by using [] brackets (with create an unamed vector reference) or using an array @a. Note the backslash ($\backslash$) before the arguments in the second and third groups (Which cause Perl to send to variable locations rather than the variable values, similar to a C pointer). \\
93: \hline
94: NOT IMPLEMENTED IN CAPA &\$a=\&xmlparse(\$string) &Runs the internal parser over the argument parsing for display. \textbf{Warning}
95: This will result in different strings in different targets. Don't use the results of this function as an answer. &New to LON-CAPA \\
96: \hline
97: tex(a,b), tex(``a'',''b'') &\&tex(\$a,\$b), \&tex(``a'',''b'') &Returns a if the output mode is in tex otherwise returns b & \\
98: \hline
99: var\_in\_tex(a) &\&var\_in\_tex(\$a) &Equivalent to tex(``a'',''``) & \\
100: \hline
101: to\_string(x), to\_string(x,y) &\&to\_string(\$x), \&to\_string(\$x,\$y) &If x is an integer, returns a string. If x is real than the output is a string with format given by y. For example, if x = 12.3456, \&to\_string(x,''.3F'') = 12.345 and \&to\_string(x,''.3E'') = 1.234E+01. & \\
102: \hline
103: capa\_id(), class(), section(), set(), problem() &\&class(), \&sec() &Returns null string, class descriptive name, section number, set number and null string. &capa\_id(), set() and problem() are no longer used. Currently, they return a null value. \\
104: \hline
105: name(), student\_number() &\&name(), \&student\_number() &Return the full name in the following format: lastname, firstname initial. Student\_number returns the student 9-alphanumeric string. If undefined, the functions return null. & \\
106: \hline
107: NOT IMPLEMENTED IN CAPA &\&check\_status(\$partid) &Returns a number identifying the current status of a part. True values mean that a part is ``done'': either unanswerable because of tries exhaustion, or fully correct, or only partially correct (and retries not permitted). A false value means that a part can still be attempted. If \$part is unspecified, it will check either the current $<$part$>$'s status or if outside of a $<$part$>$, check the status of previous $<$part$>$. The full set of return codes are: 'undef' means it is unattempted, 0 means it is attempted but still has tries, and is either wrong (or partially correct, retries allowed), 1 means it is fully correct or partially correct (no retries), 2 means the user has exceeded the maximum number of tries, and 3 means it is after the answer date & \\
108: \hline
109: open\_date(), due\_date(), answer\_date() &\&open\_date(\$partid), \&due\_date(\$partid), \&answer\_date(\$partid) &Problem open date, due date and answer date. The time is also included in 24-hr format. &Output format for time is changed slightly. If pass noon, it displays ..pm else it displays ..am. So 23:59 is displayed as 11:59 pm. \\
110: \hline
111: &\&open\_date\_epoch(\$partid), \&due\_date\_epoch(\$partid), \&answer\_date\_epoch(\$partid) &Problem open date, due date and answer date in seconds after the epoch. These numbers can be used in calculations.&\\
112: \hline
113: &\&submission(\$partid,\$responseid,\$version,
114: \$encode,\$cleanupnum) & Returns what the student submitted for response \$responseid in part \$part. You can get these IDs from the XML-code of the problem. Use 0 as \$partid for problems without parts. \$version is optional and returns the \$version-th submission of the student that was graded. If \$version is 0 or ommitted, the latest submission is returned.
115: \$encode is also optional and allows the author to explicitly encode the returned string. It's up to the author to take care of properly escaping all characters which might be interpreted by the browser.
116: \$cleanupnum is also optional, and supports clean-up of the retrieved submission. It is a reference to a hash, with one or more of the following:
117: exponent =$>$ 1,
118: comma =$>$ 1,
119: letterforzero =$>$ 1,
120: spaces =$>$ 1,
121: format =$>$ 'ns'
122: (where n is an integer, i.e., number of significant digits). For example, to convert a student submission of
123: 11,300 to 11300 include \{ comma =$>$ 1, \} as the fifth arg.&\\
124: \hline
125:
126: &\¤tpart() & Returns the ID of the current part.&\\ \hline
127:
128: get\_seed(), set\_seed() &Not implemented &Get and set the random seed. & \\
129: \hline
130: sub\_string(a,b,c) &\&sub\_string(\$a,\$b,\$c)
131: perl substr function. However, note the differences &Retrieve a portion of string a starting from b and length c. For example, \$a = ``Welcome to LON-CAPA''; \$result=\&sub\_string(\$a,4,4); then \$result is ``come'' &Perl intrinsic function, substr(string,b,c) starts counting from 0 (as opposed to 1). In the example to the left, substr(\$a,4,4) returns ``ome ``. \\
132: \hline
133: array[xx] &@arrayname
134: Array is intrinsic in perl. To access a specific element use \$arrayname[\$n] where \$n is the \$n+1 element since the array count starts from 0 &``xx'' can be a variable or a calculation. &In LON-CAPA, an array is defined by @arrayname. It is not necessary to specify the dimension of the array. \\
135: \hline
136: array\_moments(B,A) &@B=\&array\_moments(@A) &Evaluates the moments of an array A and place the result in array B[i] where i = 0 to 4. The contents of B are as follows: B[0] = number of elements, B[1] = mean, B[2] = variance, B[3] = skewness and B[4] = kurtosis. &In CAPA, the moments are passed as an array in the first argument whereas in LON-CAPA, the array containing the moments are set equal to the function. \\
137: \hline
138: array\_max(Name), array\_min(Name) &\&min(@Name), \&max(@Name) &In LON-CAPA to find the maximum value of an array, use \&max(@arrayname) and to find the minimum value of an array, use \&min(@arrayname) &Combined with the min and max functions defined earlier. \\
139: \hline
140: init\_array(Name) &undef @name &To destroy the contents of an array, use &Use perl intrinsic undef function. \\
141: \hline
142: random\_normal (return\_array,item\_cnt,seed,av,std\_dev) &@return\_array=\&random\_normal (\$item\_cnt,\$seed,\$av,\$std\_dev) &Generate \$item\_cnt deviates of normal distribution of average \$av and standard deviation \$std\_dev. The distribution is generated from seed \$seed &In CAPA the results are passed as the first argument whereas in LON-CAPA the results are set equal to the function. \\
143: \hline
144: random\_beta (return\_array,item\_cnt,seed,aa,bb) &@return\_array=\&random\_beta (\$item\_cnt,\$seed,\$aa,\$bb)
145: NOTE: Both \$aa and \$bb MUST be greater than 1.0E-37. &Generate \$item\_cnt deviates of beta distribution. The density of beta is: X\^{}(\$aa-1) *(1-X)\^{}(\$bb-1) /B(\$aa,\$bb) for 0$<$X$<$1. &In CAPA the results are passed as the first argument whereas in LON-CAPA the results are set equal to the function. \\
146: \hline
147: random\_gamma (return\_array,item\_cnt,seed,a,r) &@return\_array=\&random\_gamma (\$item\_cnt,\$seed,\$a,\$r)
148: NOTE: Both \$a and \$r MUST be positive. &Generate \$item\_cnt deviates of gamma distribution. The density of gamma is: (\$a**\$r)/gamma(\$r) * X**(\$r-1) * exp(-\$a*X). &In CAPA the results are passed as the first argument whereas in LON-CAPA the results are set equal to the function. \\
149: \hline
150: random\_exponential (return\_array,item\_cnt,seed,av) &@return\_array=\&random\_exponential (\$item\_cnt,\$seed,\$av)
151: NOTE: \$av MUST be non-negative. &Generate \$item\_cnt deviates of exponential distribution. &In CAPA the results are passed as the first argument whereas in LON-CAPA the results are set equal to the function. \\
152: \hline
153: random\_poisson (return\_array,item\_cnt,seed,mu) &@return\_array=\&random\_poisson (\$item\_cnt,\$seed,\$mu)
154: NOTE: \$mu MUST be non-negative. &Generate \$item\_cnt deviates of poisson distribution. &In CAPA the results are passed as the first argument whereas in LON-CAPA the results are set equal to the function. \\
155: \hline
156: random\_chi (return\_array,item\_cnt,seed,df) &@return\_array=\&random\_chi (\$item\_cnt,\$seed,\$df)
157: NOTE: \$df MUST be positive. &Generate \$item\_cnt deviates of chi\_square distribution with \$df degrees of freedom. &In CAPA the results are passed as the first argument whereas in LON-CAPA the results are set equal to the function. \\
158: \hline
159: random\_noncentral\_chi (return\_array,item\_cnt,seed,df,nonc) &@return\_array=\&random\_noncentral\_chi (\$item\_cnt,\$seed,\$df,\$nonc)
160: NOTE: \$df MUST be at least 1 and \$nonc MUST be non-negative. &Generate \$item\_cnt deviates of noncentral\_chi\_square distribution with \$df degrees of freedom and noncentrality parameter \$nonc. &In CAPA the results are passed as the first argument whereas in LON-CAPA the results are set equal to the function. \\
161: \hline
162: NOT IMPLEMENTED IN CAPA &@return\_array=\&random\_f (\$item\_cnt,\$seed,\$dfn,\$dfd)
163: NOTE: Both \$dfn and \$dfd MUST be positive. &Generate \$item\_cnt deviates of F (variance ratio) distribution with degrees of freedom \$dfn (numerator) and \$dfd (denominator). &New to LON-CAPA \\
164: \hline
165: NOT IMPLEMENTED IN CAPA &@return\_array=\&random\_noncentral\_f (\$item\_cnt,\$seed,\$dfn,\$dfd,\$nonc)
166: NOTE: \$dfn must be at least 1, \$dfd MUST be positive, and \$nonc must be non-negative. &Generate \$item\_cnt deviates of noncentral F (variance ratio) distribution with degrees of freedom \$dfn (numerator) and \$dfd (denominator). \$nonc is the noncentrality parameter. &New to LON-CAPA \\
167: \hline
168: NOT DOCUMENTED IN CAPA &@return\_array=\&random\_multivariate\_normal (\$item\_cnt,\$seed,$\backslash$@mean,$\backslash$@covar)
169: NOTE: @mean should be of length p array of real numbers. @covar should be a length p array of references to length p arrays of real numbers (i.e. a p by p matrix. &Generate \$item\_cnt deviates of multivariate\_normal distribution with mean vector @mean and variance-covariance matrix. &Note the backslash before the @mean and @covar arrays. \\
170: \hline
171: NOT IMPLEMENTED IN CAPA &@return\_array=\&random\_multinomial (\$item\_cnt,\$seed,@p)
172: NOTE: \$item\_cnt is rounded with int() and the result must be non-negative. The number of elements in @p must be at least 2. &Returns single observation from multinomial distribution with \$item\_cnt events classified into as many categories as the length of @p. The probability of an event being classified into category i is given by ith element of @p. The observation is an array with length equal to @p, so when called in a scalar context it returns the length of @p. The sum of the elements of the obervation is equal to \$item\_cnt. &New to LON-CAPA \\
173: \hline
174: NOT IMPLEMENTED IN CAPA &@return\_array=\&random\_permutation (\$seed,@array) &Returns @array randomly permuted. &New to LON-CAPA \\
175: \hline
176: NOT IMPLEMENTED IN CAPA &@return\_array=\&random\_uniform (\$item\_cnt,\$seed,\$low,\$high)
177: NOTE: \$low must be less than or equal to \$high. &Generate \$item\_cnt deviates from a uniform distribution. &New to LON-CAPA \\
178: \hline
179: NOT IMPLEMENTED IN CAPA &@return\_array=\&random\_uniform\_integer (\$item\_cnt,\$seed,\$low,\$high)
180: NOTE: \$low and \$high are both passed through int(). \$low must be less than or equal to \$high. &Generate \$item\_cnt deviates from a uniform distribution in integers. &New to LON-CAPA \\
181: \hline
182: NOT IMPLEMENTED IN CAPA &@return\_array=\&random\_binomial (\$item\_cnt,\$seed,\$nt,\$p)
183: NOTE: \$nt is rounded using int() and the result must be non-negative. \$p must be between 0 and 1 inclusive. &Generate \$item\_cnt deviates from the binomial distribution with \$nt trials and the probabilty of an event in each trial is \$p. &New to LON-CAPA \\
184: \hline
185: NOT IMPLEMENTED IN CAPA &@return\_array=\&random\_negative\_binomial (\$item\_cnt,\$seed,\$ne,\$p)
186: NOTE: \$ne is rounded using int() and the result must be positive. \$p must be between 0 and 1 exclusive. &Generate an array of \$item\_cnt outcomes generated from negative binomial distribution with \$ne events and the probabilty of an event in each trial is \$p. &New to LON-CAPA \\
187: \hline
188: \end{longtable}
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>