# Reworking the Staking Equations for Calculations with Integers

We will simplify the equations for m(t) for use in testing smart contracts where floating point numbers are not available.

We will start with the multiplier equation that increases linearly between intervals.

m(t) = \left(1 + a \frac{1 - r^{\lfloor \frac{t}{t_n} \rfloor}}{1 - r}\right) + \frac{\left(1 + a \frac{1 - r^{\lfloor \frac{t}{t_n} \rfloor + 1}}{1 - r}\right) - \left(1 + a \frac{1 - r^{\lfloor \frac{t}{t_n} \rfloor}}{1 - r}\right)}{t_n} \cdot \left(t - \lfloor \frac{t}{t_n} \rfloor \cdot t_n\right) 
\Leftrightarrow 
m(t) = \left(1 + a \frac{1 - r^{\lfloor \frac{t}{t_n} \rfloor}}{1 - r}\right) + \left(a \frac{1 - r^{\lfloor \frac{t}{t_n} \rfloor + 1}}{1 - r} - a \frac{1 - r^{\lfloor \frac{t}{t_n} \rfloor}}{1 - r}\right) \cdot \frac{\left(t - \lfloor \frac{t}{t_n} \rfloor \cdot t_n\right)}{t_n} 

We will add a multiplier M, since we will be working with integers.
m(t) = \frac{M \cdot \left( \left(1 + a \frac{1 - r^{\lfloor \frac{t}{t_n} \rfloor}}{1 - r}\right) + \left(a \frac{1 - r^{\lfloor \frac{t}{t_n} \rfloor + 1}}{1 - r} - a \frac{1 - r^{\lfloor \frac{t}{t_n} \rfloor}}{1 - r}\right) \cdot \frac{\left(t - \lfloor \frac{t}{t_n} \rfloor \cdot t_n\right)}{t_n} \right)}{M} 
\Leftrightarrow 
m(t) = \frac{\left( \left(M + M \cdot a \frac{1 - r^{\lfloor \frac{t}{t_n} \rfloor}}{1 - r}\right) + \left(M \cdot a \frac{1 - r^{\lfloor \frac{t}{t_n} \rfloor + 1}}{1 - r} - M \cdot a \frac{1 - r^{\lfloor \frac{t}{t_n} \rfloor}}{1 - r}\right) \cdot \frac{\left(t - \lfloor \frac{t}{t_n} \rfloor \cdot t_n\right)}{t_n} \right)}{M} 

If we are dividing integers, we can replace \lfloor \frac{x}{t_{n}} \rfloor with n, and the equation becomes:

\large{
m(t)=\frac{\left(t_{n}\cdot\left(M+M\cdot a\frac{M - M\cdot r^{n}}{M - M\cdot r}\right)+\left(M\cdot a\frac{M - M\cdot r^{n+1}}{M - M\cdot r}-M\cdot a\frac{M - M\cdot r^{n}}{M - M\cdot r}\right)\cdot\left(t-n\cdot t_{n}\right)\right)}{M\cdot t_{n}}
}

This translates to:

\large{
M\cdot m(t)=\frac{t_{n}\cdot\left(M+C_{0}\right)+\left(C_{1}-C_{0}\right)\cdot\left(t-n\cdot t_{n}\right)}{t_{n}}
}

Where:

n = \lfloor \frac{t}{t_{n}} \rfloor 
C0 = M\cdot a\frac{M - M\cdot r^{n}}{M - M\cdot r} 
C1 = M\cdot a\frac{M - M\cdot r^{n+1}}{M - M\cdot r} 

If we take into consideration that a + r = 1 we can simplify the equations for C0 and C1 further:

n = \operatorname{floor}\left(\frac{x}{t_{n}}\right) 
C0 = M - M\cdot r^{n} 
C1 = M - M\cdot r^{n+1}