I have a function on $h: (0,1) to (0,1)$ whose output is smooth (polynomial of low degree), and I need to discretize it but I need to save it with three 8 bit numbers. These three 8 bit numbers need to be ok to interpolate, so basically the definition of Lipschitz continuity.

That is I want to find a way to store my $xin (0,1)$ numbers as $f(x)in 2^8 times 2^8 times 2^8$ and I would like:

$$|f(x_1)-f(x_2)| leq K |x_1 – x_2|$$

With K not too large, and store as many $x$s as possible (I am interested in inverting this map later).

Now, I know how to do it with $K=3$ and for $2^8$: Just divide $(0,1)$ into ${ frac{1,2,…,256}{256} }$ and have $f(x) mapsto (256x,256x,256x)$.

The question is how much better can I do? Can I save $2^N$ $x$s with a small $K$ and large $N$? I know I could save $2^{24}$ if $K$ was huge, but I would like to find a middle ground.

As I understand the folding solution from another question will have a big $K$ in my case if we consider neighboring elements in the image of $f$ which cut across the folds.