Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Calculated question : adding new math functions: Difference between revisions

From MoodleDocs
Line 7: Line 7:
All functions will use either the EvalMath code or a more specific CalculatedEvalMath code.
All functions will use either the EvalMath code or a more specific CalculatedEvalMath code.
In the following table  
In the following table  
to be improved as ... there is some ambiguity on  columns names (
   # means that the function exists.  
   # means that the function exists.  
   new means that the function needs to be created in EvalMath or only in  CalculatedEvalMath.  
   new means that the function needs to be created in EvalMath or only in  CalculatedEvalMath. (... to be explained more clearly )
   OK  will be used in test column to confirm that this property has been coded and testing code have been added in  2.9
   OK  will be used in test column to confirm that this property has been coded and testing code have been added in  2.9
   NO i.e. no more supported in 2,9
   NO i.e. no more supported in 2,9
Line 25: Line 26:
| #
| #
| #
| #
|
|
|
|Absolute value
|Absolute value
Line 32: Line 34:
| #
| #
| #
| #
|
|
|
|Arc cosine -- output in radians.
|Arc cosine -- output in radians.
Line 39: Line 42:
| #
| #
| #
| #
|
|
|
|Inverse hyperbolic cosine -- output in radians.
|Inverse hyperbolic cosine -- output in radians.
Line 46: Line 50:
| #
| #
| #
| #
|
|
|
|Arc sine -- output in radians.
|Arc sine -- output in radians.
Line 53: Line 58:
| #
| #
| #
| #
|
|
|
|Inverse hyperbolic sine.-- output in radians.
|Inverse hyperbolic sine.-- output in radians.
Line 58: Line 64:
|atan2
|atan2
| #
| #
|
|
|
|
|
Line 67: Line 74:
| #
| #
| #
| #
|
|
|
|Arc tangent -- output in radians.   
|Arc tangent -- output in radians.   
Line 74: Line 82:
| #
| #
| #
| #
|
|
|
|Inverse hyperbolic tangent-- output in radians.
|Inverse hyperbolic tangent-- output in radians.
Line 79: Line 88:
|bindec
|bindec
| #
| #
|
|
|
|
|
Line 88: Line 98:
| #
| #
| #
| #
|
|
|
|Round fractions up
|Round fractions up
Line 95: Line 106:
| #
| #
| #
| #
|
|
|
|Cosine -- in radians!!!  Convert your degree measurement to radians before you take the cos of it.
|Cosine -- in radians!!!  Convert your degree measurement to radians before you take the cos of it.
Line 102: Line 114:
| #
| #
| #
| #
|
|
|
|Hyperbolic cosine -- in radians!!!  Convert your degree measurement to radians before you take the cosh of it.
|Hyperbolic cosine -- in radians!!!  Convert your degree measurement to radians before you take the cosh of it.
Line 107: Line 120:
|decbin
|decbin
| #
| #
|
|
|
|
|
Line 115: Line 129:
| #
| #
|new
|new
|
|
|
|
|
Line 122: Line 137:
| #
| #
|new
|new
|
|
|
|
|
Line 130: Line 146:
| #
| #
| #
| #
|
|
|
|Calculates the exponent of e
|Calculates the exponent of e
Line 136: Line 153:
|
|
|new
|new
|
|
|
|
|
Line 144: Line 162:
| #
| #
| #
| #
|
|
|
|Round fractions down
|Round fractions down
Line 149: Line 168:
|fmod
|fmod
|new
|new
|
|
|
|
|
Line 157: Line 177:
| #
| #
|new
|new
|
|
|
|
|
Line 164: Line 185:
| #
| #
|??
|??
|
|
|
|
|
Line 171: Line 193:
| #
| #
|??
|??
|
|
|
|
|
Line 178: Line 201:
| #
| #
|new
|new
|
|
|
|
|
Line 185: Line 209:
| #
| #
|new
|new
|
|
|
|
|
Line 193: Line 218:
| #
| #
| #
| #
|
|
|
|
|-
|-
Line 199: Line 226:
| #
| #
| #
| #
|
|
|
|
|-
|-
Line 205: Line 234:
| #
| #
| #
| #
|
|
|
|Find highest value
|Find highest value
Line 212: Line 242:
| #
| #
| #
| #
|
|
|
|Find lowest value
|Find lowest value
Line 218: Line 249:
| #
| #
|new
|new
|
|
|
|
|
Line 226: Line 258:
| #
| #
| #
| #
|
|
|
|Get value of pi - the function does not take an argument, like in Excel.
|Get value of pi - the function does not take an argument, like in Excel.
Line 234: Line 267:
|
|
|
|
|
|-
|power (numberToRaise, NumberRaisedTo)
|power (numberToRaise, NumberRaisedTo)
|
|
| #  
| #  
|new
|new
|
|
|
|Exponential expression
|Exponential expression
Line 243: Line 279:
|rad2deg
|rad2deg
| #
| #
|
|
|
|
|
Line 251: Line 288:
| #
| #
|new
|new
|
|
|
|
|
Line 259: Line 297:
|
|
| #
| #
|new
|
|
|
|
|Generate a random integer
|Generate a random integer
Line 267: Line 306:
|
|
| #
| #
|new
|
|
|
|
|Generate a random float
|Generate a random float
Line 275: Line 315:
| #
| #
| #
| #
|
|
|
|Rounds a float
|Rounds a float
Line 282: Line 323:
| #
| #
| #
| #
|
|
|
|Sine -- in radians!!!  Convert your degree measurement to radians before you take the sin of it.
|Sine -- in radians!!!  Convert your degree measurement to radians before you take the sin of it.
Line 289: Line 331:
| #
| #
| #
| #
|
|
|
|Hyperbolic sine -- in radians!!!  Convert your degree measurement to radians before you take the sinh of it.
|Hyperbolic sine -- in radians!!!  Convert your degree measurement to radians before you take the sinh of it.
Line 296: Line 339:
| #
| #
| #
| #
|
|
|
|Square root
|Square root
Line 303: Line 347:
| #
| #
| #
| #
|
|
|
|Tangent -- in radians!!!  Convert your degree measurement to radians before you take the tan of it.
|Tangent -- in radians!!!  Convert your degree measurement to radians before you take the tan of it.
Line 310: Line 355:
| #
| #
| #
| #
|
|
|
|Hyperbolic tangent -- in radians!!!  Convert your degree measurement to radians before you take the tanh of it.
|Hyperbolic tangent -- in radians!!!  Convert your degree measurement to radians before you take the tanh of it.
|}
|}
to be completed --[[User:Pierre Pichet|Pierre Pichet]] ([[User talk:Pierre Pichet|talk]]) 12:12, 12 December 2014 (AWST)
to be completed --[[User:Pierre Pichet|Pierre Pichet]] ([[User talk:Pierre Pichet|talk]]) 12:12, 12 December 2014 (AWST)

Revision as of 17:41, 12 December 2014

The calculated question type could benefit of the EvalMath module to increase the math functions useable in the Calculated, Simple calculated et Multiple choice calculated question types.

Available functions

Calculated questions can use more than simple arithmetic operators. The following functions are allowed in versions 1.5 and newer. In 2,9 we should continue to support the previous functions unless they can be unsafe. All functions will use either the EvalMath code or a more specific CalculatedEvalMath code. In the following table to be improved as ... there is some ambiguity on columns names (

 # means that the function exists. 
 new means that the function needs to be created in EvalMath or only in  CalculatedEvalMath. (... to be explained more clearly )
  OK  will be used in test column to confirm that this property has been coded and testing code have been added in  2.9
  NO i.e. no more supported in 2,9
Function 1,5+ Eval

Math

Calc coded tested Explanation
abs # # # Absolute value
acos # # # Arc cosine -- output in radians.
acosh # # # Inverse hyperbolic cosine -- output in radians.
asin # # # Arc sine -- output in radians.
asinh # # # Inverse hyperbolic sine.-- output in radians.
atan2 # Arc tangent of two variables -- pass in two values like (y, x), and you'll get the atan(y/x), adjusted to the proper quadrant. (Note: The variables are in the reverse order to atan2(x,y) in Excel) Output is radians.
atan # # # Arc tangent -- output in radians.
atanh # # # Inverse hyperbolic tangent-- output in radians.
bindec # Binary to decimal
ceil # # # Round fractions up
cos # # # Cosine -- in radians!!! Convert your degree measurement to radians before you take the cos of it.
cosh # # # Hyperbolic cosine -- in radians!!! Convert your degree measurement to radians before you take the cosh of it.
decbin # Decimal to binary
decoct # new Decimal to octal
deg2rad # new Converts the number in degrees to the radian equivalent
exp # # # Calculates the exponent of e
expm1 new Returns exp(number) - 1, computed in a way that is accurate even when the value of number is close to zero
floor # # # Round fractions down
fmod new Returns the floating-point modulus of two numbers - i.e. the remainder when the first is divided by the second.
is_finite # new Finds whether a value is a legal finite number
is_infinite # ?? Finds whether a value is infinite
is_nan # ?? Finds whether a value is not a number
log10 # new Base-10 logarithm
log1p # new Returns log(1 + number), computed in a way that is accurate even when the value of number is close to zero
log # # #
Natural logarithm (ln) # # #
max # # # Find highest value
min # # # Find lowest value
octdec # new Octal to decimal
pi() # # # Get value of pi - the function does not take an argument, like in Excel.
pow (numberToRaise, NumberRaisedTo) # new
power (numberToRaise, NumberRaisedTo) # new Exponential expression
rad2deg # Converts the radian number to the equivalent number in degrees
rand # new Generate a random integer
rand_int # Generate a random integer
rand_float # Generate a random float
round # # # Rounds a float
sin # # # Sine -- in radians!!! Convert your degree measurement to radians before you take the sin of it.
sinh # # # Hyperbolic sine -- in radians!!! Convert your degree measurement to radians before you take the sinh of it.
sqrt # # # Square root
tan # # # Tangent -- in radians!!! Convert your degree measurement to radians before you take the tan of it.
tanh # # # Hyperbolic tangent -- in radians!!! Convert your degree measurement to radians before you take the tanh of it.

to be completed --Pierre Pichet (talk) 12:12, 12 December 2014 (AWST)