Rational
The Rational
type allows you to perform all decimal arithmetic:
operation | operand |
---|---|
add | ciphertext, plaintext, literal |
sub | ciphertext, plaintext, literal |
mul | ciphertext, plaintext, literal |
div | ciphertext, plaintext, literal |
Additionally, you can perform unary negation on Rational
ciphertexts (i.e., given a
, compute -a
).
Representation
Rational
encodes a numerator and denominator as two independent Signed
values. This results in ciphertexts twice as large as when using the Fractional
type.
Efficiency
In addition to the increased size, each Rational
operation (except negation) requires multiple FHE operations. Thus, even addition can quickly increase FHE program complexity. Using Rational
ciphertexts in prolonged computation may require larger scheme parameters (hence resulting in slower computations).