implemented dfloat, pfloat, and rfloat to tune choice of precision