xref: /aosp_15_r20/external/crcalc/src/com/hp/creals/StringFloatRep.java (revision a164e4c8ceb68d2ed98bfa4453ac24556007d537)
1*a164e4c8SXin Li // Copyright (c) 2004, Hewlett-Packard Development Company, L.P.
2*a164e4c8SXin Li //
3*a164e4c8SXin Li // Permission is granted free of charge to copy, modify, use and distribute
4*a164e4c8SXin Li // this software  provided you include the entirety of this notice in all
5*a164e4c8SXin Li // copies made.
6*a164e4c8SXin Li //
7*a164e4c8SXin Li // THIS SOFTWARE IS PROVIDED ON AN AS IS BASIS, WITHOUT WARRANTY OF ANY
8*a164e4c8SXin Li // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
9*a164e4c8SXin Li // WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT
10*a164e4c8SXin Li // FOR A PARTICULAR PURPOSE OR NON-INFRINGING.   HEWLETT-PACKARD ASSUMES
11*a164e4c8SXin Li // NO RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE.
12*a164e4c8SXin Li // SHOULD THE SOFTWARE PROVE DEFECTIVE IN ANY RESPECT,
13*a164e4c8SXin Li // HEWLETT-PACKARD ASSUMES NO COST OR LIABILITY FOR ANY
14*a164e4c8SXin Li // SERVICING, REPAIR OR CORRECTION.  THIS DISCLAIMER OF WARRANTY CONSTITUTES
15*a164e4c8SXin Li // AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS
16*a164e4c8SXin Li // AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
17*a164e4c8SXin Li //
18*a164e4c8SXin Li // UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING,
19*a164e4c8SXin Li // WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY), CONTRACT, OR
20*a164e4c8SXin Li // OTHERWISE, SHALL HEWLETT-PACKARD BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL,
21*a164e4c8SXin Li // INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER WITH RESPECT TO THE
22*a164e4c8SXin Li // SOFTWARE INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK
23*a164e4c8SXin Li // STOPPAGE, LOSS OF DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL
24*a164e4c8SXin Li // OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF HEWLETT-PACKARD SHALL
25*a164e4c8SXin Li // HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES.
26*a164e4c8SXin Li // THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY RESULTING
27*a164e4c8SXin Li // FROM HEWLETT-PACKARD's NEGLIGENCE TO THE EXTENT APPLICABLE
28*a164e4c8SXin Li // LAW PROHIBITS SUCH LIMITATION.  SOME JURISDICTIONS DO NOT ALLOW THE
29*a164e4c8SXin Li // EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THAT
30*a164e4c8SXin Li // EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
31*a164e4c8SXin Li //
32*a164e4c8SXin Li 
33*a164e4c8SXin Li package com.hp.creals;
34*a164e4c8SXin Li 
35*a164e4c8SXin Li /**
36*a164e4c8SXin Li * A scientific notation representation of an approximation to a constructive
37*a164e4c8SXin Li * real.
38*a164e4c8SXin Li * Generated by CR.toStringFloatRep.
39*a164e4c8SXin Li */
40*a164e4c8SXin Li public class StringFloatRep {
StringFloatRep(int s, String m, int r, int e)41*a164e4c8SXin Li     StringFloatRep(int s, String m, int r, int e) {
42*a164e4c8SXin Li 	sign = s;
43*a164e4c8SXin Li 	mantissa = m;
44*a164e4c8SXin Li 	radix = r;
45*a164e4c8SXin Li 	exponent = e;
46*a164e4c8SXin Li     }
47*a164e4c8SXin Li /**
48*a164e4c8SXin Li * The sign associated with this approximation.  May be -1, _1, or zero.
49*a164e4c8SXin Li */
50*a164e4c8SXin Li     public int sign;
51*a164e4c8SXin Li /**
52*a164e4c8SXin Li * A string representation of the mantissa.  The decimal point is implicitly
53*a164e4c8SXin Li * to the left of the string of digits, and is not explicitly represented.
54*a164e4c8SXin Li */
55*a164e4c8SXin Li     public String mantissa;
56*a164e4c8SXin Li /**
57*a164e4c8SXin Li * The radix of the representation.  Also the base of the exponent field.
58*a164e4c8SXin Li */
59*a164e4c8SXin Li     public int radix;
60*a164e4c8SXin Li /**
61*a164e4c8SXin Li * The mantissa is scaled by radix**exponent.
62*a164e4c8SXin Li */
63*a164e4c8SXin Li     public int exponent;
64*a164e4c8SXin Li 
65*a164e4c8SXin Li /**
66*a164e4c8SXin Li * Produce a textual representation including the sign and exponent.
67*a164e4c8SXin Li */
toString()68*a164e4c8SXin Li     public String toString() {
69*a164e4c8SXin Li       return
70*a164e4c8SXin Li 	(sign < 0? "-" : "") + mantissa + "E" + Integer.toString(exponent)
71*a164e4c8SXin Li 	+ (radix == 10? "" : "(radix " + radix + ")");
72*a164e4c8SXin Li     }
73*a164e4c8SXin Li }
74