# Tests side effects (like caching) on the evaluation (formatting and
# rounding) of MPFR variables vs literals.
BEGIN {
pi = 3.1416
e = 2.7183
golden = 1.6180
# Evaluated as number with (default) OFMT.
print pi
print e
print golden
printf "\n"
# Evaluated as number with (custom) OFMT.
OFMT = "%.f"
ROUNDMODE = "U"; print "Variable pi U:", pi
ROUNDMODE = "D"; print "Variable pi D:", pi
ROUNDMODE = "U"; print "Literal pi U:", 3.1416
ROUNDMODE = "D"; print "Literal pi D:", 3.1416
printf "\n"
# Evaluated as string with (custom) CONVFMT. Absent comma.
CONVFMT = "%.f"
ROUNDMODE = "D"; print "Variable e D: " e
ROUNDMODE = "U"; print "Variable e U: " e
ROUNDMODE = "D"; print "Literal e D: " 2.7183
ROUNDMODE = "U"; print "Literal e U: " 2.7183
printf "\n"
# Evaluated as number with (hardcoded) printf conversion.
ROUNDMODE = "N"; printf "Variable golden N: %.f\n", golden
ROUNDMODE = "Z"; printf "Variable golden Z: %.f\n", golden
ROUNDMODE = "N"; printf "Literal golden N: %.f\n", 1.6180
ROUNDMODE = "Z"; printf "Literal golden Z: %.f\n", 1.6180
}