| Alpha | This module is rated as alpha. It is ready for third-party input, and may be used on a few pages to see if problems arise, but should be watched. Suggestions for new features or changes in their input and output mechanisms are welcome. | 
Usage edit source
{{#invoke:Sandbox/IJReid|function_name}}
- Functions
 - Multiplication - 
{{#invoke:Sandbox/IJReid|multiplication|case_1|case_2}} - Division - 
{{#invoke:Sandbox/IJReid|division|case_1|case_2}} - Subtraction - 
{{#invoke:Sandbox/IJReid|subtraction|case_1|case_2}} - Addition - 
{{#invoke:Sandbox/IJReid|addition|case_1|case_2}} 
- Calculations for archival templates
 {{#invoke:Sandbox/IJReid/Mathematics|subtraction|{{#invoke:Sandbox/IJReid/Mathematics|multiplication|{{Age in days|01 January {{safesubst:CURRENTYEAR}}}}|24}}|{{#invoke:Sandbox/IJReid/Mathematics|subtraction|24|{{safesubst:CURRENTHOUR}}}}}}- Lua error at line 13: attempt to perform arithmetic on field '?' (a string value).
 
- 75
 
--Module to calculate basic math values
mathematics = {}
mathematics.addition = function(input)				--Addition function
	local sum = 0									--Define variable for use in loop
	for i, arg in pairs(input.args) do				--Loop to run through all arguments
		sum = sum + arg								--Add argument value to sum
	end
	return sum										--Output the sum to the module
end
mathematics.subtraction = function(input)			--Subtraction function
	local dif = input.args[1] - input.args[2]		--Subtract second argument from first
	return dif										--Outpud difference to module
end
mathematics.multiplication = function(input)		--Multiplication function
	local product = 1								--Set product as 1 (so multiplication of it works)
	local pi = 3.141592653589793					--Set pi as 15 digits of precision
	for i, arg in pairs(input.args) do				--Allow multiple arguments
		if (arg == "pi" or arg == "π" or arg == 3.14) then	--Set pi to π argument
			arg = pi
		else
			product = product * arg					--Multiply arguments together
		end
	end
	return product									--Output product to module
end
mathematics.division = function(input)				--Division function
	local quotient = input.args[1] / input.args[2]	--Divide arg1 by arg2
	return quotient									--Output quotient to module
end
return mathematics									--Output module to place of use