`ExpressionMath` (OpScript)
===========================

.. lua:module:: ExpressionMath

Utilities
---------

.. lua:function:: clamp(number|table<number> value, number|table<number> a, number|array<number> b) -> number|table<number>
.. lua:function:: lerp(number|table<number> mix, number|table<number> a, number|table<number> b) -> number|table<number>
.. lua:function:: smoothstep(number|table<number> t) -> number|table<number>
.. lua:function:: fit(number|array value, number|array oldmin, number|array oldmax, number|array newmin, number|array newmax) -> number|array
.. lua:function:: cfit(number|array value, number|array oldmin, number|array oldmax, number|array newmin, number|array newmax) -> number|array
.. lua:function:: softcfit(number|array value, number|array oldmin, number|array oldmax, number|array newmin, number|array newmax) -> number|array

Retiming
--------

.. lua:function:: retime(number t, number start, number end, string|number inMode, string|number outMode) -> number
.. lua:data:: RETIME_FREEZE
.. lua:data:: RETIME_MIRROR
.. lua:data:: RETIME_REPEAT

Noise
-----

.. lua:function:: noise(number x [,number y [,number z [,number w]]]) -> number
.. lua:function:: snoise(number x [,number y [,number z [,number w]]]) -> number
.. lua:function:: randval(number min, number max, number seed) -> number

Hashing
-------

.. lua:function:: stablehash(string key) -> number