Concrete
WebsiteLibrariesProducts & ServicesDevelopersSupport
2.7
2.7
  • Welcome
  • Get Started
    • What is Concrete?
    • Installation
    • Quick start
    • Compatibility
    • Terminology
  • Core features
    • Overview
    • Table lookups (basics)
    • Non-linear operations
    • Advanced features
      • Bit extraction
      • Common tips
      • Extensions
  • Compilation
    • Combining compiled functions
      • With composition
      • With modules
    • Key-related options for faster execution
      • Multi precision
      • Multi parameters
    • Compression
    • Reusing arguments
    • Common errors
  • Execution / Analysis
    • Simulation
    • Debugging and artifact
    • GPU acceleration
    • Other
      • Statistics
      • Progressbar
      • Formatting and drawing
  • Guides
    • Configure
    • Manage keys
    • Deploy
  • Tutorials
    • See all tutorials
    • Part I: Concrete - FHE compiler
    • Part II: The Architecture of Concrete
  • References
    • API
  • Explanations
    • Compiler workflow
    • Compiler internals
      • Table lookups
      • Rounding
      • Truncating
      • Floating points
      • Comparisons
      • Min/Max operations
      • Bitwise operations
      • Direct circuits
      • Tagging
    • Security
    • Frontend fusing
  • Developers
    • Contributing
    • Release note
    • Feature request
    • Bug report
    • Project layout
    • Compiler backend
      • Adding a new backend
    • Optimizer
    • MLIR FHE dialects
      • FHELinalg dialect
      • FHE dialect
      • TFHE dialect
      • Concrete dialect
      • Tracing dialect
      • Runtime dialect
      • SDFG dialect
    • Call FHE circuits from other languages
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. Get Started

Compatibility

PreviousQuick startNextTerminology

Last updated 10 months ago

Was this helpful?

Supported operations

This document lists the operations you can use inside the function that you are compiling.

Some operations are not supported between two encrypted values. If attempted, a detailed error message will be raised.

Supported Python operators.

Supported NumPy functions.

Supported ndarray methods.

Supported ndarray properties.

Limitations

Control flow constraints

Concrete doesn not support some control flow statements, including the if and while statement when the condition depends on an encrypted value. However, control flow statements with constant values are allowed, for example, for i in range(SOME_CONSTANT), if os.environ.get("SOME_FEATURE") == "ON":.

Type constraints

Floating-point inputs or floating-point outputs are not supported. You can have floating-point intermediate values as long as they can be converted to an integer Table Lookup, for example, (60 * np.sin(x)).astype(np.int64).

Bit width constraints

Bit width of encrypted values has a limit. We are constantly working on increasing the bit width limit. Exceeding this limit will trigger 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