% The luamaths package % version 1.6 % Licensed under LaTeX Project Public License v1.3c or later. The complete license text is available at http://www.latex-project.org/lppl.txt. %Authors: Chetan Shirore and Ajit Kumar \ProvidesPackage{luamaths}[1.6] \RequirePackage{xkeyval} \RequirePackage{amsmath} \RequirePackage{luacode} \begin{luacode*} --load luamaths-complex and luamaths-fractions modules. local complex = require "luamaths-complex" local lfrac = require "luamaths-fractions" --define lua function for evaluating expressions. function mathop(...) inf = math.huge return ... end --define lua function for rounding numbers. function mathround(num, numDecimalPlaces) if num==math.floor(num) then return math.floor(num) end local mult = 10^(numDecimalPlaces or 0) return math.floor(num * mult + 0.5) / mult end \end{luacode*} \newcommand\mathOp[1]{\directlua{tex.sprint(tostring(mathop(#1)))}} \newcommand\mathAbs[1]{\directlua{tex.sprint(math.abs(#1))}} \newcommand\mathAcos[1]{\directlua{tex.sprint(math.acos(#1))}} \newcommand\mathAsin[1]{\directlua{tex.sprint(math.asin(#1))}} \newcommand\mathAtan[1]{\directlua{tex.sprint(math.atan(#1))}} \newcommand\mathCeil[1]{\directlua{tex.sprint(math.ceil(#1))}} \newcommand\mathCos[1]{\directlua{tex.sprint(math.cos(#1))}} \newcommand\mathExp[1]{\directlua{tex.sprint(math.exp(#1))}} \newcommand\mathFloor[1]{\directlua{tex.sprint(math.floor(#1))}} \newcommand\mathInf{\directlua{tex.sprint(math.huge)}} \newcommand\mathLog[1]{\directlua{tex.sprint(math.log(#1))}} \newcommand\mathMax[1]{\directlua{tex.sprint(math.max(#1))}} \newcommand\mathMin[1]{\directlua{tex.sprint(math.min(#1))}} \newcommand\mathPi{\directlua{tex.sprint(math.pi)}} \newcommand\mathRandom[1]{\directlua{tex.sprint(math.random(#1))}} \newcommand\mathSin[1]{\directlua{tex.sprint(tostring(math.sin(#1)))}} \newcommand\mathSqrt[1]{\directlua{tex.sprint(math.sqrt(#1))}} \newcommand\mathTan[1]{\directlua{tex.sprint(math.tan(#1))}} \newcommand\mathRad[1]{\directlua{tex.sprint(math.rad(#1))}} \newcommand\mathRound[2]{\directlua{tex.sprint(mathround(#1,#2))}} \newcommand\complexRound[2]{% \directlua{% tex.sprint(complex.tostring(complex.round(#1,#2))) }% }% \newcommand{\imUnit}{\mathrm{i}} \newcommand\luaChkeqnum[2]{% \directlua{% tex.sprint(tostring(lnumChqEql(#1,#2)))% }% } \endinput