mirror of
https://github.com/zama-ai/concrete.git
synced 2026-02-08 11:35:02 -05:00
902 lines
28 KiB
Markdown
902 lines
28 KiB
Markdown
<!-- Autogenerated by mlir-tblgen; don't manually edit -->
|
|
# 'Concrete' Dialect
|
|
|
|
Low Level Fully Homomorphic Encryption dialect
|
|
A dialect for representation of low level operation on fully homomorphic ciphertext.
|
|
|
|
|
|
|
|
## Operation definition
|
|
|
|
### `Concrete.add_lwe_buffer` (::mlir::concretelang::Concrete::AddLweBufferOp)
|
|
|
|
Returns the sum of 2 lwe ciphertexts
|
|
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `result` | 1D memref of 64-bit signless integer values
|
|
| `lhs` | 1D memref of 64-bit signless integer values
|
|
| `rhs` | 1D memref of 64-bit signless integer values
|
|
|
|
### `Concrete.add_lwe_tensor` (::mlir::concretelang::Concrete::AddLweTensorOp)
|
|
|
|
Returns the sum of 2 lwe ciphertexts
|
|
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `lhs` | 1D tensor of 64-bit signless integer values
|
|
| `rhs` | 1D tensor of 64-bit signless integer values
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
| `result` | 1D tensor of 64-bit signless integer values
|
|
|
|
### `Concrete.add_plaintext_lwe_buffer` (::mlir::concretelang::Concrete::AddPlaintextLweBufferOp)
|
|
|
|
Returns the sum of a clear integer and an lwe ciphertext
|
|
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `result` | 1D memref of 64-bit signless integer values
|
|
| `lhs` | 1D memref of 64-bit signless integer values
|
|
| `rhs` | 64-bit signless integer
|
|
|
|
### `Concrete.add_plaintext_lwe_tensor` (::mlir::concretelang::Concrete::AddPlaintextLweTensorOp)
|
|
|
|
Returns the sum of a clear integer and an lwe ciphertext
|
|
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `lhs` | 1D tensor of 64-bit signless integer values
|
|
| `rhs` | 64-bit signless integer
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
| `result` | 1D tensor of 64-bit signless integer values
|
|
|
|
### `Concrete.batched_add_lwe_buffer` (::mlir::concretelang::Concrete::BatchedAddLweBufferOp)
|
|
|
|
Batched version of AddLweBufferOp, which performs the same operation on multiple elements
|
|
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `result` | 2D memref of 64-bit signless integer values
|
|
| `lhs` | 2D memref of 64-bit signless integer values
|
|
| `rhs` | 2D memref of 64-bit signless integer values
|
|
|
|
### `Concrete.batched_add_lwe_tensor` (::mlir::concretelang::Concrete::BatchedAddLweTensorOp)
|
|
|
|
Batched version of AddLweTensorOp, which performs the same operation on multiple elements
|
|
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `lhs` | 2D tensor of 64-bit signless integer values
|
|
| `rhs` | 2D tensor of 64-bit signless integer values
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
| `result` | 2D tensor of 64-bit signless integer values
|
|
|
|
### `Concrete.batched_add_plaintext_cst_lwe_buffer` (::mlir::concretelang::Concrete::BatchedAddPlaintextCstLweBufferOp)
|
|
|
|
Batched version of AddPlaintextLweBufferOp, which performs the same operation on multiple elements
|
|
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `result` | 2D memref of 64-bit signless integer values
|
|
| `lhs` | 2D memref of 64-bit signless integer values
|
|
| `rhs` | 64-bit signless integer
|
|
|
|
### `Concrete.batched_add_plaintext_cst_lwe_tensor` (::mlir::concretelang::Concrete::BatchedAddPlaintextCstLweTensorOp)
|
|
|
|
Batched version of AddPlaintextLweTensorOp, which performs the same operation on multiple elements
|
|
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `lhs` | 2D tensor of 64-bit signless integer values
|
|
| `rhs` | 64-bit signless integer
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
| `result` | 2D tensor of 64-bit signless integer values
|
|
|
|
### `Concrete.batched_add_plaintext_lwe_buffer` (::mlir::concretelang::Concrete::BatchedAddPlaintextLweBufferOp)
|
|
|
|
Batched version of AddPlaintextLweBufferOp, which performs the same operation on multiple elements
|
|
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `result` | 2D memref of 64-bit signless integer values
|
|
| `lhs` | 2D memref of 64-bit signless integer values
|
|
| `rhs` | 1D memref of 64-bit signless integer values
|
|
|
|
### `Concrete.batched_add_plaintext_lwe_tensor` (::mlir::concretelang::Concrete::BatchedAddPlaintextLweTensorOp)
|
|
|
|
Batched version of AddPlaintextLweTensorOp, which performs the same operation on multiple elements
|
|
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `lhs` | 2D tensor of 64-bit signless integer values
|
|
| `rhs` | 1D tensor of 64-bit signless integer values
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
| `result` | 2D tensor of 64-bit signless integer values
|
|
|
|
### `Concrete.batched_bootstrap_lwe_buffer` (::mlir::concretelang::Concrete::BatchedBootstrapLweBufferOp)
|
|
|
|
Batched version of BootstrapLweOp, which performs the same operation on multiple elements
|
|
|
|
|
|
#### Attributes:
|
|
|
|
| Attribute | MLIR Type | Description |
|
|
| :-------: | :-------: | ----------- |
|
|
| `inputLweDim` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `polySize` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `level` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `baseLog` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `glweDimension` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `bskIndex` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `result` | 2D memref of 64-bit signless integer values
|
|
| `input_ciphertext` | 2D memref of 64-bit signless integer values
|
|
| `lookup_table` | 1D memref of 64-bit signless integer values
|
|
|
|
### `Concrete.batched_bootstrap_lwe_tensor` (::mlir::concretelang::Concrete::BatchedBootstrapLweTensorOp)
|
|
|
|
Batched version of BootstrapLweOp, which performs the same operation on multiple elements
|
|
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Attributes:
|
|
|
|
| Attribute | MLIR Type | Description |
|
|
| :-------: | :-------: | ----------- |
|
|
| `inputLweDim` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `polySize` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `level` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `baseLog` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `glweDimension` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `bskIndex` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `input_ciphertext` | 2D tensor of 64-bit signless integer values
|
|
| `lookup_table` | 1D tensor of 64-bit signless integer values
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
| `result` | 2D tensor of 64-bit signless integer values
|
|
|
|
### `Concrete.batched_keyswitch_lwe_buffer` (::mlir::concretelang::Concrete::BatchedKeySwitchLweBufferOp)
|
|
|
|
Batched version of KeySwitchLweOp, which performs the same operation on multiple elements
|
|
|
|
|
|
#### Attributes:
|
|
|
|
| Attribute | MLIR Type | Description |
|
|
| :-------: | :-------: | ----------- |
|
|
| `level` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `baseLog` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `lwe_dim_in` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `lwe_dim_out` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `kskIndex` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `result` | 2D memref of 64-bit signless integer values
|
|
| `ciphertext` | 2D memref of 64-bit signless integer values
|
|
|
|
### `Concrete.batched_keyswitch_lwe_tensor` (::mlir::concretelang::Concrete::BatchedKeySwitchLweTensorOp)
|
|
|
|
Batched version of KeySwitchLweOp, which performs the same operation on multiple elements
|
|
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Attributes:
|
|
|
|
| Attribute | MLIR Type | Description |
|
|
| :-------: | :-------: | ----------- |
|
|
| `level` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `baseLog` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `lwe_dim_in` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `lwe_dim_out` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `kskIndex` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `ciphertext` | 2D tensor of 64-bit signless integer values
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
| `result` | 2D tensor of 64-bit signless integer values
|
|
|
|
### `Concrete.batched_mapped_bootstrap_lwe_buffer` (::mlir::concretelang::Concrete::BatchedMappedBootstrapLweBufferOp)
|
|
|
|
Batched, mapped version of BootstrapLweOp, which performs the same operation on multiple elements
|
|
|
|
|
|
#### Attributes:
|
|
|
|
| Attribute | MLIR Type | Description |
|
|
| :-------: | :-------: | ----------- |
|
|
| `inputLweDim` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `polySize` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `level` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `baseLog` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `glweDimension` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `bskIndex` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `result` | 2D memref of 64-bit signless integer values
|
|
| `input_ciphertext` | 2D memref of 64-bit signless integer values
|
|
| `lookup_table_vector` | 2D memref of 64-bit signless integer values
|
|
|
|
### `Concrete.batched_mapped_bootstrap_lwe_tensor` (::mlir::concretelang::Concrete::BatchedMappedBootstrapLweTensorOp)
|
|
|
|
Batched, mapped version of BootstrapLweOp, which performs the same operation on multiple elements
|
|
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Attributes:
|
|
|
|
| Attribute | MLIR Type | Description |
|
|
| :-------: | :-------: | ----------- |
|
|
| `inputLweDim` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `polySize` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `level` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `baseLog` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `glweDimension` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `bskIndex` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `input_ciphertext` | 2D tensor of 64-bit signless integer values
|
|
| `lookup_table_vector` | 2D tensor of 64-bit signless integer values
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
| `result` | 2D tensor of 64-bit signless integer values
|
|
|
|
### `Concrete.batched_mul_cleartext_cst_lwe_buffer` (::mlir::concretelang::Concrete::BatchedMulCleartextCstLweBufferOp)
|
|
|
|
Batched version of MulCleartextLweBufferOp, which performs the same operation on multiple elements
|
|
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `result` | 2D memref of 64-bit signless integer values
|
|
| `lhs` | 2D memref of 64-bit signless integer values
|
|
| `rhs` | 64-bit signless integer
|
|
|
|
### `Concrete.batched_mul_cleartext_cst_lwe_tensor` (::mlir::concretelang::Concrete::BatchedMulCleartextCstLweTensorOp)
|
|
|
|
Batched version of MulCleartextLweTensorOp, which performs the same operation on multiple elements
|
|
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `lhs` | 2D tensor of 64-bit signless integer values
|
|
| `rhs` | 64-bit signless integer
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
| `result` | 2D tensor of 64-bit signless integer values
|
|
|
|
### `Concrete.batched_mul_cleartext_lwe_buffer` (::mlir::concretelang::Concrete::BatchedMulCleartextLweBufferOp)
|
|
|
|
Batched version of MulCleartextLweBufferOp, which performs the same operation on multiple elements
|
|
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `result` | 2D memref of 64-bit signless integer values
|
|
| `lhs` | 2D memref of 64-bit signless integer values
|
|
| `rhs` | 1D memref of 64-bit signless integer values
|
|
|
|
### `Concrete.batched_mul_cleartext_lwe_tensor` (::mlir::concretelang::Concrete::BatchedMulCleartextLweTensorOp)
|
|
|
|
Batched version of MulCleartextLweTensorOp, which performs the same operation on multiple elements
|
|
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `lhs` | 2D tensor of 64-bit signless integer values
|
|
| `rhs` | 1D tensor of 64-bit signless integer values
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
| `result` | 2D tensor of 64-bit signless integer values
|
|
|
|
### `Concrete.batched_negate_lwe_buffer` (::mlir::concretelang::Concrete::BatchedNegateLweBufferOp)
|
|
|
|
Batched version of NegateLweBufferOp, which performs the same operation on multiple elements
|
|
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `result` | 2D memref of 64-bit signless integer values
|
|
| `ciphertext` | 2D memref of 64-bit signless integer values
|
|
|
|
### `Concrete.batched_negate_lwe_tensor` (::mlir::concretelang::Concrete::BatchedNegateLweTensorOp)
|
|
|
|
Batched version of NegateLweTensorOp, which performs the same operation on multiple elements
|
|
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `ciphertext` | 2D tensor of 64-bit signless integer values
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
| `result` | 2D tensor of 64-bit signless integer values
|
|
|
|
### `Concrete.bootstrap_lwe_buffer` (::mlir::concretelang::Concrete::BootstrapLweBufferOp)
|
|
|
|
Bootstraps a LWE ciphertext with a GLWE trivial encryption of the lookup table
|
|
|
|
|
|
#### Attributes:
|
|
|
|
| Attribute | MLIR Type | Description |
|
|
| :-------: | :-------: | ----------- |
|
|
| `inputLweDim` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `polySize` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `level` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `baseLog` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `glweDimension` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `bskIndex` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `result` | 1D memref of 64-bit signless integer values
|
|
| `input_ciphertext` | 1D memref of 64-bit signless integer values
|
|
| `lookup_table` | 1D memref of 64-bit signless integer values
|
|
|
|
### `Concrete.bootstrap_lwe_tensor` (::mlir::concretelang::Concrete::BootstrapLweTensorOp)
|
|
|
|
Bootstraps an LWE ciphertext with a GLWE trivial encryption of the lookup table
|
|
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Attributes:
|
|
|
|
| Attribute | MLIR Type | Description |
|
|
| :-------: | :-------: | ----------- |
|
|
| `inputLweDim` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `polySize` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `level` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `baseLog` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `glweDimension` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `bskIndex` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `input_ciphertext` | 1D tensor of 64-bit signless integer values
|
|
| `lookup_table` | 1D tensor of 64-bit signless integer values
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
| `result` | 1D tensor of 64-bit signless integer values
|
|
|
|
### `Concrete.encode_expand_lut_for_bootstrap_buffer` (::mlir::concretelang::Concrete::EncodeExpandLutForBootstrapBufferOp)
|
|
|
|
Encode and expand a lookup table so that it can be used for a bootstrap
|
|
|
|
|
|
#### Attributes:
|
|
|
|
| Attribute | MLIR Type | Description |
|
|
| :-------: | :-------: | ----------- |
|
|
| `polySize` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `outputBits` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `isSigned` | ::mlir::BoolAttr | bool attribute
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `result` | 1D memref of 64-bit signless integer values
|
|
| `input_lookup_table` | 1D memref of 64-bit signless integer values
|
|
|
|
### `Concrete.encode_expand_lut_for_bootstrap_tensor` (::mlir::concretelang::Concrete::EncodeExpandLutForBootstrapTensorOp)
|
|
|
|
Encode and expand a lookup table so that it can be used for a bootstrap
|
|
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Attributes:
|
|
|
|
| Attribute | MLIR Type | Description |
|
|
| :-------: | :-------: | ----------- |
|
|
| `polySize` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `outputBits` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `isSigned` | ::mlir::BoolAttr | bool attribute
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `input_lookup_table` | 1D tensor of 64-bit signless integer values
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
| `result` | 1D tensor of 64-bit signless integer values
|
|
|
|
### `Concrete.encode_lut_for_crt_woppbs_buffer` (::mlir::concretelang::Concrete::EncodeLutForCrtWopPBSBufferOp)
|
|
|
|
Encode and expand a lookup table so that it can be used for a crt wop pbs
|
|
|
|
|
|
#### Attributes:
|
|
|
|
| Attribute | MLIR Type | Description |
|
|
| :-------: | :-------: | ----------- |
|
|
| `crtDecomposition` | ::mlir::ArrayAttr | 64-bit integer array attribute
|
|
| `crtBits` | ::mlir::ArrayAttr | 64-bit integer array attribute
|
|
| `modulusProduct` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `isSigned` | ::mlir::BoolAttr | bool attribute
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `result` | 2D memref of 64-bit signless integer values
|
|
| `input_lookup_table` | 1D memref of 64-bit signless integer values
|
|
|
|
### `Concrete.encode_lut_for_crt_woppbs_tensor` (::mlir::concretelang::Concrete::EncodeLutForCrtWopPBSTensorOp)
|
|
|
|
Encode and expand a lookup table so that it can be used for a wop pbs
|
|
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Attributes:
|
|
|
|
| Attribute | MLIR Type | Description |
|
|
| :-------: | :-------: | ----------- |
|
|
| `crtDecomposition` | ::mlir::ArrayAttr | 64-bit integer array attribute
|
|
| `crtBits` | ::mlir::ArrayAttr | 64-bit integer array attribute
|
|
| `modulusProduct` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `isSigned` | ::mlir::BoolAttr | bool attribute
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `input_lookup_table` | 1D tensor of 64-bit signless integer values
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
| `result` | 2D tensor of 64-bit signless integer values
|
|
|
|
### `Concrete.encode_plaintext_with_crt_buffer` (::mlir::concretelang::Concrete::EncodePlaintextWithCrtBufferOp)
|
|
|
|
Encodes a plaintext by decomposing it on a crt basis
|
|
|
|
|
|
#### Attributes:
|
|
|
|
| Attribute | MLIR Type | Description |
|
|
| :-------: | :-------: | ----------- |
|
|
| `mods` | ::mlir::ArrayAttr | 64-bit integer array attribute
|
|
| `modsProd` | ::mlir::IntegerAttr | 64-bit signless integer attribute
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `result` | 1D memref of 64-bit signless integer values
|
|
| `input` | 64-bit signless integer
|
|
|
|
### `Concrete.encode_plaintext_with_crt_tensor` (::mlir::concretelang::Concrete::EncodePlaintextWithCrtTensorOp)
|
|
|
|
Encodes a plaintext by decomposing it on a crt basis
|
|
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Attributes:
|
|
|
|
| Attribute | MLIR Type | Description |
|
|
| :-------: | :-------: | ----------- |
|
|
| `mods` | ::mlir::ArrayAttr | 64-bit integer array attribute
|
|
| `modsProd` | ::mlir::IntegerAttr | 64-bit signless integer attribute
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `input` | 64-bit signless integer
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
| `result` | 1D tensor of 64-bit signless integer values
|
|
|
|
### `Concrete.keyswitch_lwe_buffer` (::mlir::concretelang::Concrete::KeySwitchLweBufferOp)
|
|
|
|
Performs a keyswitching operation on an LWE ciphertext
|
|
|
|
|
|
#### Attributes:
|
|
|
|
| Attribute | MLIR Type | Description |
|
|
| :-------: | :-------: | ----------- |
|
|
| `level` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `baseLog` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `lwe_dim_in` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `lwe_dim_out` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `kskIndex` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `result` | 1D memref of 64-bit signless integer values
|
|
| `ciphertext` | 1D memref of 64-bit signless integer values
|
|
|
|
### `Concrete.keyswitch_lwe_tensor` (::mlir::concretelang::Concrete::KeySwitchLweTensorOp)
|
|
|
|
Performs a keyswitching operation on an LWE ciphertext
|
|
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Attributes:
|
|
|
|
| Attribute | MLIR Type | Description |
|
|
| :-------: | :-------: | ----------- |
|
|
| `level` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `baseLog` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `lwe_dim_in` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `lwe_dim_out` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `kskIndex` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `ciphertext` | 1D tensor of 64-bit signless integer values
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
| `result` | 1D tensor of 64-bit signless integer values
|
|
|
|
### `Concrete.mul_cleartext_lwe_buffer` (::mlir::concretelang::Concrete::MulCleartextLweBufferOp)
|
|
|
|
Returns the product of a clear integer and a lwe ciphertext
|
|
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `result` | 1D memref of 64-bit signless integer values
|
|
| `lhs` | 1D memref of 64-bit signless integer values
|
|
| `rhs` | 64-bit signless integer
|
|
|
|
### `Concrete.mul_cleartext_lwe_tensor` (::mlir::concretelang::Concrete::MulCleartextLweTensorOp)
|
|
|
|
Returns the product of a clear integer and a lwe ciphertext
|
|
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `lhs` | 1D tensor of 64-bit signless integer values
|
|
| `rhs` | 64-bit signless integer
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
| `result` | 1D tensor of 64-bit signless integer values
|
|
|
|
### `Concrete.negate_lwe_buffer` (::mlir::concretelang::Concrete::NegateLweBufferOp)
|
|
|
|
Negates an lwe ciphertext
|
|
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `result` | 1D memref of 64-bit signless integer values
|
|
| `ciphertext` | 1D memref of 64-bit signless integer values
|
|
|
|
### `Concrete.negate_lwe_tensor` (::mlir::concretelang::Concrete::NegateLweTensorOp)
|
|
|
|
Negates an lwe ciphertext
|
|
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `ciphertext` | 1D tensor of 64-bit signless integer values
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
| `result` | 1D tensor of 64-bit signless integer values
|
|
|
|
### `Concrete.wop_pbs_crt_lwe_buffer` (::mlir::concretelang::Concrete::WopPBSCRTLweBufferOp)
|
|
|
|
|
|
|
|
|
|
#### Attributes:
|
|
|
|
| Attribute | MLIR Type | Description |
|
|
| :-------: | :-------: | ----------- |
|
|
| `bootstrapLevel` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `bootstrapBaseLog` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `keyswitchLevel` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `keyswitchBaseLog` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `packingKeySwitchInputLweDimension` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `packingKeySwitchoutputPolynomialSize` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `packingKeySwitchLevel` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `packingKeySwitchBaseLog` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `circuitBootstrapLevel` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `circuitBootstrapBaseLog` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `crtDecomposition` | ::mlir::ArrayAttr | 64-bit integer array attribute
|
|
| `kskIndex` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `bskIndex` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `pkskIndex` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `result` | 2D memref of 64-bit signless integer values
|
|
| `ciphertext` | 2D memref of 64-bit signless integer values
|
|
| `lookup_table` | 2D memref of 64-bit signless integer values
|
|
|
|
### `Concrete.wop_pbs_crt_lwe_tensor` (::mlir::concretelang::Concrete::WopPBSCRTLweTensorOp)
|
|
|
|
|
|
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Attributes:
|
|
|
|
| Attribute | MLIR Type | Description |
|
|
| :-------: | :-------: | ----------- |
|
|
| `bootstrapLevel` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `bootstrapBaseLog` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `keyswitchLevel` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `keyswitchBaseLog` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `packingKeySwitchInputLweDimension` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `packingKeySwitchoutputPolynomialSize` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `packingKeySwitchLevel` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `packingKeySwitchBaseLog` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `circuitBootstrapLevel` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `circuitBootstrapBaseLog` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `crtDecomposition` | ::mlir::ArrayAttr | 64-bit integer array attribute
|
|
| `kskIndex` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `bskIndex` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
| `pkskIndex` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `ciphertext` | 2D tensor of 64-bit signless integer values
|
|
| `lookupTable` | 2D tensor of 64-bit signless integer values
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
| `result` | 2D tensor of 64-bit signless integer values
|
|
|
|
## Type definition
|
|
|
|
### ContextType
|
|
|
|
A runtime context
|
|
|
|
Syntax: `!Concrete.context`
|
|
|
|
An abstract runtime context to pass contextual value, like public keys, ...
|
|
|