encode_to_plain_matrix

Engine.encode_to_plain_matrix(matrix, level)
행렬 형태의 메세지를 행렬 곱셈을 위한 행렬 평문으로 인코딩합니다.
  • 인풋:
    • matrix: 파이썬 리스트나 numpy 어레이만 받습니다. dtype은 int, double, complex double 모두 가능합니다.
    • 행렬은 정방행렬이어야 하며, 두 차원 모두 Engine.slot_count와 같아야 합니다.
    • level: optional
      • 지정된 경우에는 해당 최대 곱셈 횟수에 필요한 만큼만 인코딩을 합니다. 레벨이 낮을 수록 차지하는 공간이 작지만 최대 곱셈 횟수가 줄어듭니다.
  • 아웃풋:
    • PlainMatrix
import numpy as np

from desilofhe import Engine

engine = Engine(slot_count=64)

message = np.arange(64 * 64).reshape(64, 64)
plain_matrix = engine.encode_to_plain_matrix(message)
plain_matrix_level_2 = engine.encode_to_plain_matrix(message, level=2)