Difference Between PTAS and FPTAS
Imagine you have an $\epsilon$-approximation algorithm $A$ which runs in $n^2+2^\frac1\epsilon$ on an instance of size $n$ and another one, $B$ which runs in $n^2+\frac1\epsilon$ (to give you an other example). 

(I'm not using big-O notation to make it easier to talk about the polynomial bounds).

Now if you say $1/\epsilon$ is a constant, $2^\frac1\epsilon$ and $\frac1\epsilon$ both become constants, and you can say that the runtime of both $A$ and $B$ is bounded by a polynomial in $n$. Meaning that only $n$ is seen as a variable of that polynomial, as $\epsilon$ is a constant. So both $A$ and $B$ qualify as PTAS.

However, if this time you don't consider $1/\epsilon$ like a constant and want to include it as a variable in a polynomial upper bound, the situation changes.


For $B$, there exists some polynomial $p(x,y)$ of two variables $x$ and $y$, such that the runtime of $B$ is at most $p(n,1/\epsilon)$ for all $n,\epsilon &gt; 0$. For example, $p(x,y) = x^2 + y$ works, because $n^2+\frac1\epsilon \leq p(n,1/\epsilon)$. Thus $B$ qualifies as a FPTAS.
For $A$ however, it is not possible to find such a polynomial. For every polynomial $p(x,y)$, you know that $n^2+2^\frac1\epsilon &gt; p(n,1/\epsilon)$ once $1/\epsilon$ becomes big enough (or equivalently, once $\epsilon$ becomes small enough). Thus $A$ does not qualify as a FPTAS.