All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.fasterxml.jackson.jr.private_.io.doubleparser.DoubleBitsFromCharSequence Maven / Gradle / Ivy

Go to download

"Uber" jar that contains all Jackson jr components as well as underlying Jackson core Streaming, in a single jar.

There is a newer version: 2.18.2
Show newest version
/**
 * References:
 * 
*
This class has been derived from "FastDoubleParser".
*
Copyright (c) Werner Randelshofer. Apache 2.0 License. * github.com.
*
*/ package com.fasterxml.jackson.core.io.doubleparser; /** * Parses a {@code double} from a {@link CharSequence}. */ final class DoubleBitsFromCharSequence extends AbstractFloatingPointBitsFromCharSequence { /** * Creates a new instance. */ public DoubleBitsFromCharSequence() { } @Override long nan() { return Double.doubleToRawLongBits(Double.NaN); } @Override long negativeInfinity() { return Double.doubleToRawLongBits(Double.NEGATIVE_INFINITY); } @Override long positiveInfinity() { return Double.doubleToRawLongBits(Double.POSITIVE_INFINITY); } @Override long valueOfFloatLiteral(CharSequence str, int startIndex, int endIndex, boolean isNegative, long significand, int exponent, boolean isSignificandTruncated, int exponentOfTruncatedSignificand) { double d = FastDoubleMath.tryDecFloatToDoubleTruncated(isNegative, significand, exponent, isSignificandTruncated, exponentOfTruncatedSignificand); return Double.doubleToRawLongBits(Double.isNaN(d) ? Double.parseDouble(str.subSequence(startIndex, endIndex).toString()) : d); } @Override long valueOfHexLiteral( CharSequence str, int startIndex, int endIndex, boolean isNegative, long significand, int exponent, boolean isSignificandTruncated, int exponentOfTruncatedSignificand) { double d = FastDoubleMath.tryHexFloatToDoubleTruncated(isNegative, significand, exponent, isSignificandTruncated, exponentOfTruncatedSignificand); return Double.doubleToRawLongBits(Double.isNaN(d) ? Double.parseDouble(str.subSequence(startIndex, endIndex).toString()) : d); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy