Z3
 
Loading...
Searching...
No Matches
RatNum.java
Go to the documentation of this file.
1
18package com.microsoft.z3;
19
20import java.math.BigInteger;
21
25public class RatNum extends RealExpr
26{
31 {
32 return new IntNum(getContext(), Native.getNumerator(getContext().nCtx(),
33 getNativeObject()));
34 }
35
40 {
41 return new IntNum(getContext(), Native.getDenominator(getContext().nCtx(),
42 getNativeObject()));
43 }
44
48 public BigInteger getBigIntNumerator()
49 {
50 IntNum n = getNumerator();
51 return new BigInteger(n.toString());
52 }
53
57 public BigInteger getBigIntDenominator()
58 {
60 return new BigInteger(n.toString());
61 }
62
68 public long[] getSmall()
69 {
70 Native.LongPtr num = new Native.LongPtr();
71 Native.LongPtr den = new Native.LongPtr();
72 if (!Native.getNumeralSmall(getContext().nCtx(), getNativeObject(), num, den))
73 throw new Z3Exception("Numeral does not fit in int64");
74 return new long[] { num.value, den.value };
75 }
76
82 public long[] getRationalInt64()
83 {
84 Native.LongPtr num = new Native.LongPtr();
85 Native.LongPtr den = new Native.LongPtr();
86 if (!Native.getNumeralRationalInt64(getContext().nCtx(), getNativeObject(), num, den))
87 return null;
88 return new long[] { num.value, den.value };
89 }
90
96 public String toDecimalString(int precision)
97 {
98 return Native.getNumeralDecimalString(getContext().nCtx(), getNativeObject(),
99 precision);
100 }
101
105 @Override
106 public String toString() {
107 return Native.getNumeralString(getContext().nCtx(), getNativeObject());
108 }
109
110 RatNum(Context ctx, long obj)
111 {
112 super(ctx, obj);
113 }
114}
BigInteger getBigIntDenominator()
Definition RatNum.java:57
BigInteger getBigIntNumerator()
Definition RatNum.java:48
String toDecimalString(int precision)
Definition RatNum.java:96
long[] getRationalInt64()
Definition RatNum.java:82