CAPA Functions
|
LON-CAPA
|
Descriptions
|
Differences (if any)
|
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).
|
|
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.
|
|
log(x), log10(x)
|
&log($x), &log10($x)
|
Natural and base-10 logarithm. $x can be a pure
number.
|
|
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 and $y can be pure numbers.
|
|
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.
|
|
erf(x), erfc(x)
|
&erf($x), &erfc($x)
|
Error function. and
erfx(x) = 1.0 - erf(x).
$x can be a pure number. |
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
sinh(x), cosh(x), tanh(x)
|
&sinh($x), &cosh($x), &tanh($x)
|
Hyperbolic functions. $x can be a pure number.
|
|
asinh(x), acosh(x), atanh(x)
|
&asinh($x), &acosh($x), &atanh($x)
|
Inverse hyperbolic functions. $x can be a pure number.
|
|
roundto(x,n)
|
&roundto($x,$n)
|
Rounds a real number to n decimal points. $x and
$n can be pure numbers.
|
|
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.
|
|
html("a") or html(a)
|
&html("a") or &html($a)
|
Output only if the output mode chosen is in html
format.
|
|
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) was not implemented.
|
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) was not implemented.
|
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.
|
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.
|
|
tex(a,b), tex("a","b")
|
&tex($a,$b), &tex("a","b")
|
Returns a if the output mode is in tex otherwise
returns b.
|
|
var_in_tex(a)
|
&var_in_tex($a)
|
Equivalent to tex("a","")
|
|
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.
|
|
capa_id(), class(), section(), set(), problem()
|
&class(), §ion()
|
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.
|
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.
|
|
open_date(), due_date(), answer_date()
|
&open_date(), &due_date(), &answer_date()
|
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.
|
get_seed(), set_seed()
|
Not implemented
|
Get and set the random seed.
|
|
sub_string(a,b,c)
|
&sub_string($a,$b,$c)
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 ".
|
array[xx]
|
@arrayname
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.
|
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.
|
|
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.
|
init_array(Name)
|
undef @name
|
To destroy the contents of an array, use
undef @arrayname; |
Use perl intrinsic undef function.
|
random_norma(...), random_beta(...), random_gamma(...),
random_exponential(...), random_poisson(...), random_chi(...), random_noncentral(...)
|
Not yet implemented.
|
|
|