/** * Returns a {@link FloatBuiltin} representing the given {@link String} value. * * @param value * @return */ public static FloatBuiltin of(String value) { Pair<BigFloat, Integer> pair = FloatBuiltin.parseKFloat(value); return of(pair.getLeft(), pair.getRight()); }
/** * Returns a {@link String} representing the (uninterpreted) value of the float token. */ public String value() { return printKFloat(value) + printKFloatSuffix(value, exponent); }
/** * Return a {@link String} representing the (uninterpreted) value of the numerical * float corresponding to the value of the float token. */ public static String printKFloat(BigFloat value) { return printKFloat(value, value::toString); }
public static FloatToken of(String value) { Pair<BigFloat, Integer> pair = FloatBuiltin.parseKFloat(value); return of(pair.getLeft(), pair.getRight()); }
/** * Returns a {@link FloatBuiltin} representing the given {@link double} value. * * @param value * @return */ public static FloatBuiltin of(double value) { return of(new BigFloat(value, BinaryMathContext.BINARY64), BinaryMathContext.BINARY64_EXPONENT_BITS); }
/** * Returns a {@link FloatBuiltin} representing the given {@link BigFloat} value * and the given exponent range, in bits. * * @param value * @return */ public static FloatBuiltin of(BigFloat value, Integer exponent) { assert value != null; Pair<BigFloat, Integer> key = Pair.of(value, exponent); FloatBuiltin floatBuiltin = tokenCache.get(key); if (floatBuiltin == null) { floatBuiltin = new FloatBuiltin(value, exponent); tokenCache.put(key, floatBuiltin); } return floatBuiltin; }
public static StringToken float2string(FloatToken term, TermContext context) { return StringToken.of(FloatBuiltin.printKFloat(term.bigFloatValue(), term.bigFloatValue()::toString)); }
/** * Returns a {@link FloatBuiltin} representing the given {@link float} value. * * @param value * @return */ public static FloatBuiltin of(float value) { return of(new BigFloat(value, BinaryMathContext.BINARY32), BinaryMathContext.BINARY32_EXPONENT_BITS); }
/** * Returns a {@code String} representation of the (uninterpreted) javaBackendValue of this FloatToken. */ @Override public String javaBackendValue() { return FloatBuiltin.printKFloat(value) + FloatBuiltin.printKFloatSuffix(value, exponent); }
public static StringToken floatFormat(FloatToken term, StringToken format, TermContext context) { return StringToken.of(FloatBuiltin.printKFloat(term.bigFloatValue(), () -> term.bigFloatValue().toString(format.stringValue()))); }