  This paper proposes a set of techniques to develop correctly rounded math
libraries for 32-bit float and posit types. It enhances our RLibm approach that
frames the problem of generating correctly rounded libraries as a linear
programming problem in the context of 16-bit types to scale to 32-bit types.
Specifically, this paper proposes new algorithms to (1) generate polynomials
that produce correctly rounded outputs for all inputs using counterexample
guided polynomial generation, (2) generate efficient piecewise polynomials with
bit-pattern based domain splitting, and (3) deduce the amount of freedom
available to produce correct results when range reduction involves multiple
elementary functions. The resultant math library for the 32-bit float type is
faster than state-of-the-art math libraries while producing the correct output
for all inputs. We have also developed a set of correctly rounded elementary
functions for 32-bit posits.
