Concrete
WebsiteLibrariesProducts & ServicesDevelopersSupport
2.4
2.4
  • What is Concrete?
  • Getting Started
    • Basics of FHE programs
    • Installation
    • Quick Start
    • Compatibility
    • Exactness
    • Performance
    • Terminology and Structure
  • Tutorials
    • Decorator
    • Progressbar
    • Formatting
    • Tagging
    • Extensions
    • Comparisons
    • Bitwise Operations
    • Table Lookups
    • Rounding
    • Floating Points
    • Multi Precision
    • Multi Parameters
    • Simulation
    • Direct Circuits
    • Statistics
    • Common Workarounds
  • Application Tutorials
    • Key Value Database
    • SHA-256
  • How To
    • Configure
    • Manage Keys
    • Deploy
    • Reuse Arguments
    • Debug
    • Call FHE circuits from other languages
  • Explanations
    • Frontend fusing
    • Compilation
      • Automatic Crypto Parameters choice
      • MLIR FHE Dialects
        • FHELinalg Dialect
        • FHE Dialect
        • TFHE Dialect
        • Concrete Dialect
        • Tracing Dialect
        • Runtime Dialect
        • SDFG Dialect
    • Security curves
  • Developer
    • Contribute
    • Project layout
    • Compiler backend
      • Adding a new backend
Powered by GitBook

Libraries

  • TFHE-rs
  • Concrete
  • Concrete ML
  • fhEVM

Developers

  • Blog
  • Documentation
  • Github
  • FHE resources

Company

  • About
  • Introduction to FHE
  • Media
  • Careers
On this page
  • Supported operations
  • Supported Python operators.
  • Supported NumPy functions.
  • Supported ndarray methods.
  • Supported ndarray properties.
  • Limitations
  • Control flow constraints.
  • Type constraints.
  • Bit width constraints.

Was this helpful?

Export as PDF
  1. Getting Started

Compatibility

PreviousQuick StartNextExactness

Last updated 1 year ago

Was this helpful?

Supported operations

Here are the operations you can use inside the function you are compiling:

Some of these operations are not supported between two encrypted values. A detailed error will be raised if you try to do something that is not supported.

Supported Python operators.

Supported NumPy functions.

Supported ndarray methods.

Supported ndarray properties.

Limitations

Control flow constraints.

Some Python control flow statements are not supported. You cannot have an if statement or a while statement 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":).

Type constraints.

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)).

Bit width constraints.

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.

__abs__
__add__
__and__
__eq__
__floordiv__
__ge__
__getitem__
__gt__
__invert__
__le__
__lshift__
__lt__
__matmul__
__mod__
__mul__
__ne__
__neg__
__or__
__pos__
__pow__
__radd__
__rand__
__rfloordiv__
__rlshift__
__rmatmul__
__rmod__
__rmul__
__ror__
__round__
__rpow__
__rrshift__
__rshift__
__rsub__
__rtruediv__
__rxor__
__sub__
__truediv__
__xor__
np.absolute
np.add
np.arccos
np.arccosh
np.arcsin
np.arcsinh
np.arctan
np.arctan2
np.arctanh
np.around
np.bitwise_and
np.bitwise_or
np.bitwise_xor
np.broadcast_to
np.cbrt
np.ceil
np.clip
np.concatenate
np.copysign
np.cos
np.cosh
np.deg2rad
np.degrees
np.dot
np.equal
np.exp
np.exp2
np.expand_dims
np.expm1
np.fabs
np.float_power
np.floor
np.floor_divide
np.fmax
np.fmin
np.fmod
np.gcd
np.greater
np.greater_equal
np.heaviside
np.hypot
np.invert
np.isfinite
np.isinf
np.isnan
np.lcm
np.ldexp
np.left_shift
np.less
np.less_equal
np.log
np.log10
np.log1p
np.log2
np.logaddexp
np.logaddexp2
np.logical_and
np.logical_not
np.logical_or
np.logical_xor
np.matmul
np.maximum
np.minimum
np.multiply
np.negative
np.nextafter
np.not_equal
np.ones_like
np.positive
np.power
np.rad2deg
np.radians
np.reciprocal
np.remainder
np.reshape
np.right_shift
np.rint
np.round_
np.sign
np.signbit
np.sin
np.sinh
np.spacing
np.sqrt
np.square
np.subtract
np.sum
np.tan
np.tanh
np.transpose
np.true_divide
np.trunc
np.where
np.zeros_like
np.ndarray.astype
np.ndarray.clip
np.ndarray.dot
np.ndarray.flatten
np.ndarray.reshape
np.ndarray.transpose
np.ndarray.shape
np.ndarray.ndim
np.ndarray.size
np.ndarray.T