# Does multiplication by double or plaintext always require Rescale?

**URL:** <https://openfhe.discourse.group/t/does-multiplication-by-double-or-plaintext-always-require-rescale/1563>\
**Category:** Library Questions\
**Created:** [September 11, 2024, 2:01pm UTC](https://openfhe.discourse.group/t/does-multiplication-by-double-or-plaintext-always-require-rescale/1563 "2024-09-11T14:01:20Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Arseniy](https://avatars.discourse-cdn.com/v4/letter/a/f9ae1b/32.png) [@Arseniy](https://openfhe.discourse.group/u/Arseniy)\
**Post date:** [September 11, 2024, 2:01pm UTC](https://openfhe.discourse.group/t/does-multiplication-by-double-or-plaintext-always-require-rescale/1563/1 "2024-09-11T14:01:20Z")

</div>

Hello,

I’m hoping to clarify something regarding CKKS multiplication in OpenFHE, that was discussed in the following [topic](https://openfhe.discourse.group/t/does-homomorphic-constant-multiplication-require-additional-circuit-depth/1292). From what I understand, performing a multiplication by a double or plaintext consumes one multiplication level, and each multiplication requires a rescaling afterward.

I have a couple of questions related to this:

1. Is the need to rescale after scalar and plaintext multiplications a theoretical requirement, or is it an implementation constraint in OpenFHE?  
In other words, is it theoretically possible in CKKS to multiply a ciphertext by a scalar/plaintext without rescaling afterwards and still obtain a correct result?
2. If I work in `FIXEDMANUAL` mode and choose not to rescale after scalar or plaintext multiplications, will the results still be accurate? Or could this lead to incorrect results or potential overflow?

Thank you in advance for your help!

Best regards,  
Arseniy

cc @sloede

---

<div class="post-metadata">

**Author:** ![ypolyakov](https://yyz1.discourse-cdn.com/flex031/user_avatar/openfhe.discourse.group/ypolyakov/32/47_2.png) [@ypolyakov](https://openfhe.discourse.group/u/ypolyakov)\
**Post date:** [September 11, 2024, 11:34pm UTC](https://openfhe.discourse.group/t/does-multiplication-by-double-or-plaintext-always-require-rescale/1563/2 "2024-09-11T23:34:39Z")

</div>

> [@Arseniy](#):
>
> Is the need to rescale after scalar and plaintext multiplications a theoretical requirement, or is it an implementation constraint in OpenFHE?  
> In other words, is it theoretically possible in CKKS to multiply a ciphertext by a scalar/plaintext without rescaling afterwards and still obtain a correct result?

It it not a theoretical requirement. But whenever you multiply by a (scaled-up and rounded) scalar, the approximation noise increases by this (scaled-up and rounded) scalar. You can still multiply the resulting ciphertext after this w/o causing double-exponential growth in the approximation error (in contrast to homomorphic multiplication, where you have to rescale).

> [@Arseniy](#):
>
> If I work in `FIXEDMANUAL` mode and choose not to rescale after scalar or plaintext multiplications, will the results still be accurate? Or could this lead to incorrect results or potential overflow?

Yes, it will still be accurate as long as the total multiplicative depth does not exceed the depth set during CryptoContext generation.

For a more in-depth intrdouction, I suggest reading the Introduction of [Approximate Homomorphic Encryption with Reduced Approximation Error](https://eprint.iacr.org/2020/1118)

---

<div class="post-metadata">

**Author:** ![Arseniy](https://avatars.discourse-cdn.com/v4/letter/a/f9ae1b/32.png) [@Arseniy](https://openfhe.discourse.group/u/Arseniy)\
**Post date:** [September 12, 2024, 8:23am UTC](https://openfhe.discourse.group/t/does-multiplication-by-double-or-plaintext-always-require-rescale/1563/3 "2024-09-12T08:23:15Z")

</div>

I see, the scaling factor of double value will cause the fast error growth, that can be decreased only by `Rescale`.  
Thank you very much!
