File:  [LON-CAPA] / loncom / html / adm / help / tex / Problem_LON-CAPA_Functions.tex
Revision 1.7: download - view: text, annotated - select for diffs
Wed Jun 29 18:07:15 2005 UTC (19 years ago) by albertel
Branches: MAIN
CVS tags: version_2_1_X, version_2_1_99_0, version_2_1_3, version_2_1_2, version_2_1_1, version_2_1_0, version_2_0_X, version_2_0_99_1, version_2_0_2, version_2_0_1, version_2_0_0, version_1_99_3, version_1_99_2, version_1_99_1, HEAD
- adding documentation on the new tags <algebra> <chem> <num> <parse>

    1: \label{Problem_LON-CAPA_Functions}
    2: 
    3: \begin{longtable}{|p{8.5cm}|p{8.5cm}|}
    4: \hline 
    5:  \textbf{LON-CAPA Function }
    6:  &\textbf{Description }
    7:  \endhead
    8:  \hline 
    9: 
   10: \&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) \\
   11: \hline
   12:  
   13: \&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:  
   16: \&log(\$x), \&log10(\$x)  & Natural and base-10 logarithm. \$x can be a pure number \\
   17: \hline
   18:  
   19: \&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 \\
   20: \hline
   21:  
   22: \&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 \\
   23: \hline
   24:  
   25: \&erf(\$x), \&erfc(\$x)  & Error function.
   26: erf = 2/sqrt(pi) integral (0,x) et-sq and \emph{ erfx(x)}
   27:  = 1.0 - \emph{erf(x)}. \$x can be a pure number \\
   28: \hline
   29:  
   30: \&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 \\
   31: \hline
   32:  
   33: \&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 \\
   34: \hline
   35:  
   36: \&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 \\
   37: \hline
   38:  
   39: \$N\%\$M  & N and M are integers and returns the remainder (in integer) of N/M. \$N and \$M can be pure numbers \\
   40: \hline
   41:  
   42: \&sinh(\$x), \&cosh(\$x), \&tanh(\$x)  & Hyperbolic functions. \$x can be a pure number \\
   43: \hline
   44:  
   45: \&asinh(\$x), \&acosh(\$x), \&atanh(\$x)  & Inverse hyperbolic functions. \$x can be a pure number \\
   46: \hline
   47:  
   48: \&format(\$x,'nn')  & Display or format \$x as nn where nn is nF or nE or nS and n is an integer. \\
   49: \hline
   50:  
   51: \&prettyprint(\$x,'nn','optional target') & Note that that tag $<$num$>$ can be used to do the same thing. 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.\\
   52: \hline
   53:  
   54: \&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.\\
   55: \hline
   56:  
   57: \&roundto(\$x,\$n)  & Rounds a real number to n decimal points. \$x and \$n can be pure numbers \\
   58: \hline
   59:  
   60: \&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 \\
   61: \hline
   62:  
   63: \&html(``a'') or \&html(\$a)  & Output only if the output mode chosen is in html format \\
   64: \hline
   65:  
   66: \&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 \\
   67: \hline
   68:  
   69: \&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 \\
   70: \hline
   71:  
   72: \&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 \\
   73: \hline
   74:  
   75: \&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 \\
   76: \hline
   77:  
   78: \parbox{6.49cm}{
   79: Option 1 - \&map(\$seed,[$\backslash$\$w,$\backslash$\$x,$\backslash$\$y,$\backslash$\$z],[\$a,\$b,\$c,\$d]) or \\
   80:  Option 2 - \&map(\$seed,$\backslash$@mappedArray,[\$a,\$b,\$c,\$d]) \\
   81:  Option 3 - @mappedArray = \&map(\$seed,[\$a,\$b,\$c,\$d]) \\
   82:  Option 4 - (\$w,\$x,\$y,\$z) = \&map(\$seed,$\backslash$@a) \\
   83:  Option 5 - @Z = \&map(\$seed,$\backslash$@a) \\
   84:  where \$a='A'\\
   85:  \$b='B'\\
   86:  \$c='B'\\ 
   87:  \$d='B'\\ 
   88:  \$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. And Option 5 is the same as option 4 the array of results are saved into a signle array rather than an array opf scalar variables.\\
   89: \hline
   90:  
   91: \parbox{6.49cm}{Option 1 - \&rmap(\$seed,[$\backslash$\$w,$\backslash$\$x,$\backslash$\$y,$\backslash$\$z],[\$a,\$b,\$c,\$d]) or \\ 
   92:  Option 2 - \&rmap(\$seed,$\backslash$@rmappedArray,[\$a,\$b,\$c,\$d]) \\
   93:  Option 3 - @rmapped\_array = \&rmap(\$seed,[\$a,\$b,\$c,\$d]) \\
   94:  Option 4 - (\$w,\$x,\$y,\$z) = \&rmap(\$seed,$\backslash$@a) \\
   95:  Option 5 - @Z = \&map(\$seed,$\backslash$@a) \\
   96:  where \$a='A'\\
   97:  \$b='B'\\
   98:  \$c='B'\\ 
   99:  \$d='B'\\ 
  100:  \$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.  \\
  101: \hline
  102:  
  103: \$a=\&xmlparse(\$string)   & You probably should use the tag $<$parse$>$ instead of this function. Runs the internal parser over the argument parsing for display. \textbf{Warning}
  104:  This will result in different strings in different targets. Don't use the results of this function as an answer. \\
  105: \hline
  106:  
  107: \&tex(\$a,\$b), \&tex(``a'',''b'')  & Returns a if the output mode is in tex otherwise returns b \\
  108: \hline
  109:  
  110: \&var\_in\_tex(\$a)  & Equivalent to tex(``a'',''``) \\
  111: \hline
  112:  
  113: \&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. \\
  114: \hline
  115:  
  116: \&class(), \&section()  & Returns null string, class descriptive name, section number, set number and null string. \\
  117: \hline
  118:  
  119: \&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. \\
  120: \hline
  121: \&check\_status(\$partid) &Returns a number identifing the current status of a part. Ture values mean that a part is ``done'' (either unanswerable becuase of tries exhuastion, or correct) or a false value if a part can still be attempted. If \$part is unspecfied, 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 attmpted and wrong but still has tries, 1 means it is marked correct, 2 means they have exceed maximum number of tries, 3 means it after the answer date\\
  122: \hline
  123: \&open\_date(), \&due\_date(), \&answer\_date()  & Problem open date, due date and answer date. The time is also included in 24-hr format. \\
  124: \hline
  125:  
  126: Not implemented  & Get and set the random seed. \\
  127: \hline
  128:  
  129: \&sub\_string(\$a,\$b,\$c)
  130: 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'' \\
  131: \hline
  132:  
  133: @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. \\
  135: \hline
  136:  
  137: @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. \\
  138: \hline
  139:  
  140: \&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) \\
  141: \hline
  142:  
  143: undef @name  & To destroy the contents of an array, use \\
  144: \hline
  145:  
  146: @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 \\
  147: \hline
  148:  
  149: @return\_array=\&random\_beta (\$item\_cnt,\$seed,\$aa,\$bb) 
  150:  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. \\
  151: \hline
  152:  
  153: @return\_array=\&random\_gamma (\$item\_cnt,\$seed,\$a,\$r) 
  154:  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). \\
  155: \hline
  156:  
  157: @return\_array=\&random\_exponential (\$item\_cnt,\$seed,\$av) 
  158:  NOTE: \$av MUST be non-negative.  & Generate \$item\_cnt deviates of exponential distribution.  \\
  159: \hline
  160:  
  161: @return\_array=\&random\_poisson (\$item\_cnt,\$seed,\$mu) 
  162:  NOTE: \$mu MUST be non-negative.  & Generate \$item\_cnt deviates of poisson distribution.  \\
  163: \hline
  164:  
  165: @return\_array=\&random\_chi (\$item\_cnt,\$seed,\$df)  
  166:  NOTE: \$df MUST be positive.  & Generate \$item\_cnt deviates of chi\_square distribution with \$df degrees of freedom.  \\
  167: \hline
  168:  
  169: @return\_array=\&random\_noncentral\_chi (\$item\_cnt,\$seed,\$df,\$nonc) 
  170:  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.  \\
  171: \hline
  172:  
  173: @return\_array=\&random\_f (\$item\_cnt,\$seed,\$dfn,\$dfd) 
  174:  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).  \\
  175: \hline
  176:  
  177: @return\_array=\&random\_noncentral\_f (\$item\_cnt,\$seed,\$dfn,\$dfd,\$nonc) 
  178:  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.  \\
  179: \hline
  180:  
  181: @return\_array=\&random\_multivariate\_normal (\$item\_cnt,\$seed,$\backslash$@mean,$\backslash$@covar) 
  182:  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.  \\
  183: \hline
  184:  
  185: @return\_array=\&random\_multinomial (\$item\_cnt,\$seed,@p) 
  186:  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. \\
  187: \hline
  188:  
  189: @return\_array=\&random\_permutation (\$seed,@array)   & Returns @array randomly permuted. \\
  190: \hline
  191:  
  192: @return\_array=\&random\_uniform (\$item\_cnt,\$seed,\$low,\$high) 
  193:  NOTE: \$low must be less than or equal to \$high.  & Generate \$item\_cnt deviates from a uniform distribution.  \\
  194: \hline
  195:  
  196: @return\_array=\&random\_uniform\_integer (\$item\_cnt,\$seed,\$low,\$high) 
  197:  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.  \\
  198: \hline
  199:  
  200: @return\_array=\&random\_binomial (\$item\_cnt,\$seed,\$nt,\$p) 
  201:  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.  \\
  202: \hline
  203:  
  204: @return\_array=\&random\_negative\_binomial (\$item\_cnt,\$seed,\$ne,\$p) 
  205:  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.  \\
  206: \hline
  207: \end{longtable}

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>