  Mainstream math libraries for floating point (FP) do not produce correctly
rounded results for all inputs. In contrast, CR-LIBM and RLIBM provide
correctly rounded implementations for a specific FP representation with one
rounding mode. Using such libraries for a representation with a new rounding
mode or with different precision will result in wrong results due to double
rounding. This paper proposes a novel method to generate a single polynomial
approximation that produces correctly rounded results for all inputs for
multiple rounding modes and multiple precision configurations. To generate a
correctly rounded library for $n$-bits, our key idea is to generate such a
polynomial approximation for a representation with $n+2$-bits using the
\emph{round-to-odd} mode. We prove that the resulting polynomial approximation
will produce correctly rounded results for all five rounding modes in the
standard and for multiple representations with $k$-bits such that $|E| +1 < k
\leq n$, where $|E|$ is the number of exponent bits in the representation.
Building on our prior work in the RLIBM project, we also approximate the
correctly rounded result when we generate the library with $n+2$-bits using the
round-to-odd mode. We also generate polynomial approximations by structuring it
as a linear programming problem but propose enhancements to polynomial
generation to handle the round-to-odd mode. Our prototype is the first 32-bit
float library that produces correctly rounded results with all rounding modes
in the IEEE standard for all inputs with a single polynomial approximation. It
also produces correctly rounded results for any FP configuration ranging from
10-bits to 32-bits while also being faster than mainstream libraries.
