Orion
‘orion’ Dialect
The orion dialect is an entry dialect for the Orion compiler
into the heir ecosystem. It is primarily intended to enable comparisons between Orion and HEIR.
Because an existing translator was written that converts from Orion to HEIR’s CKKS dialect, this dialect serves to include the ops not supported by the CKKS dialect, but which are expressed as black boxes by Orion.
Orion ops
orion.chebyshev (heir::orion::ChebyshevOp)
Evaluates a Chebyshev polynomial on a ciphertext using pre-computed coefficients
Syntax:
operation ::= `orion.chebyshev` operands attr-dict `:` functional-type(operands, results)
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
coefficients | ::mlir::ArrayAttr | array attribute |
domain_start | ::mlir::FloatAttr | An Attribute containing a floating-point value |
domain_end | ::mlir::FloatAttr | An Attribute containing a floating-point value |
Operands:
| Operand | Description |
|---|---|
input | A ciphertext type |
Results:
| Result | Description |
|---|---|
result | A ciphertext type |
orion.linear_transform (heir::orion::LinearTransformOp)
Apply a linear transformation to the input ciphertext using pre-computed diagonals
Syntax:
operation ::= `orion.linear_transform` operands attr-dict `:` functional-type(operands, results)
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
| Operand | Description |
|---|---|
input | A ciphertext type |
diagonals | floating-point-like |
Results:
| Result | Description |
|---|---|
result | A ciphertext type |