Here are the operations you can use inside the function you are compiling.
Some Python control flow statements are not supported. For example, you cannot have an
ifstatement or a
whilestatement for which the condition depends on an encrypted value. However, such statements are supported with constant values (e.g.,
for i in range(SOME_CONSTANT),
if os.environ.get("SOME_FEATURE") == "ON":).
Another constraint is that you cannot have floating-point inputs or floating-point outputs. You can have floating-point intermediate values as long as they can be converted to an integer Table Lookup (e.g.,
(60 * np.sin(x)).astype(np.int64)).
There is a limit on the bit width of encrypted values. We are constantly working on increasing this bit width. If you go above the limit, you will get an error.