CKKS public key encryption vs secret key encryption

Hello!

Can someone tell me when to use one or the other? Or if one is no longer used and in this case why?

The difference types I mean by this:

    auto c1 = cc->Encrypt(keys.publicKey, ptxt1);
    auto c2 = cc->Encrypt(keys.secretKey, ptxt1);

I think that the first one it have a polynomial V that multiply the public key and the addition of polynomial errors and then the addition of the encoding (like the paper of reduce error), and in the other one is simple the addition of the public key with the encoding (like the original paper).

The secret-key encryption (method used for c2) is used when the party that encrypts the input data is also the party that will decrypt the result. In other words, the encryptor already knows the secret key. This approach is faster and requires less noise than the public-key encryption method (method used for c1).

The pubic-key encryption method should be used when the (full) secret key is not known to the party performing the encryption. E.g., this method is always used in the threshold FHE setting.