Hi together,
my application is doing a EvalCompareSchemeSwitching
operation on two encrypted vectors of the same size (they are results from previous fhe operations). The initial batch size is 8 but it will be manually changed while i do computations because i get dynamic lengths of vectors as input for every new run. I dont want to set it too high from the beginning.
The two vectors in plain maybe are looking like this with size 16:
v1 = {0.074717, 0.0755024, 0.0758047, 0.0753391, 0.0830566, 0.0765554, 0.0884495, 0.0871232, 0.0853462, 0.0844123, 0.0766145, 0.0805673, 0.0702482, 0.0724547, 0.072666, 0.081887}
v2 = {0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05}
I want to compare the two vectors with the following operation:
auto ctCompare = serverCC->EvalCompareSchemeSwitching(ct_v1, ct_v2);
The result of this operation looks like this:
(1, 1, 0.999998, 0.999999, 0.999999, 0.999999, 0.999999, 1, ... )
Since the initial batch size is 8, I only get 8 values when decrypting the results, right?
I have already tried to enter further parameters in EvalCompareSchemeSwitching()
.
Unfortunately, I got wrong results (only the first 8 are correct) when entering parameters. Slots here is different from the initial batchsize:
auto ctCompareDistances = serverCC->EvalCompareSchemeSwitching(ct_v1, ct_v2, slots, slots, 0, 1, false);
I want to have a result vector of the same size as v1
or v2
with correct values.
Can you help me there?