--- doc/homework/homework5.html 2001/05/19 03:40:19 1.2 +++ doc/homework/homework5.html 2001/06/01 14:17:04 1.4 @@ -301,24 +301,342 @@
A list of functions that have been written that are available in the Safe space scripting environment inside a problem. The eventual - goal is to provide all of the functions available in CAPA + goal is to provide all of the functions available in CAPA. Detailed + descriptions of each function and comparison with CAPA is given in + CAPA to LON-CAPA Functions.
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) | +  | +
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. $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. erf = 2/sqrt(pi) integral (0,x) et-sq 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 | +Use perl intrinsic undef function. | +
random_norma(...), random_beta(...), random_gamma(...), + random_exponential(...), random_poisson(...), random_chi(...), random_noncentral(...) | +Not yet implemented. | ++ | + |