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:

AttributeMLIR TypeDescription
coefficients::mlir::ArrayAttrarray attribute
domain_start::mlir::FloatAttrAn Attribute containing a floating-point value
domain_end::mlir::FloatAttrAn Attribute containing a floating-point value

Operands:

OperandDescription
inputA ciphertext type

Results:

ResultDescription
resultA 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:

OperandDescription
inputA ciphertext type
diagonalsfloating-point-like

Results:

ResultDescription
resultA ciphertext type