mirror of
https://github.com/zama-ai/concrete.git
synced 2026-02-17 08:01:20 -05:00
feat(optimizer): export unsafe_cast to cpp
This commit is contained in:
@@ -492,6 +492,14 @@ impl OperationDag {
|
||||
self.0.add_round_op(input.into(), rounded_precision).into()
|
||||
}
|
||||
|
||||
fn add_unsafe_cast_op(
|
||||
&mut self,
|
||||
input: ffi::OperatorIndex,
|
||||
new_precision: Precision,
|
||||
) -> ffi::OperatorIndex {
|
||||
self.0.add_unsafe_cast(input.into(), new_precision).into()
|
||||
}
|
||||
|
||||
fn optimize_v0(&self, options: ffi::Options) -> ffi::Solution {
|
||||
let processing_unit = processing_unit(options);
|
||||
|
||||
@@ -666,6 +674,12 @@ mod ffi {
|
||||
rounded_precision: u8,
|
||||
) -> OperatorIndex;
|
||||
|
||||
fn add_unsafe_cast_op(
|
||||
self: &mut OperationDag,
|
||||
input: OperatorIndex,
|
||||
rounded_precision: u8,
|
||||
) -> OperatorIndex;
|
||||
|
||||
fn optimize_v0(self: &OperationDag, options: Options) -> Solution;
|
||||
|
||||
fn optimize(self: &OperationDag, options: Options) -> DagSolution;
|
||||
|
||||
@@ -972,6 +972,7 @@ struct OperationDag final : public ::rust::Opaque {
|
||||
::concrete_optimizer::dag::OperatorIndex add_dot(::rust::Slice<::concrete_optimizer::dag::OperatorIndex const> inputs, ::rust::Box<::concrete_optimizer::Weights> weights) noexcept;
|
||||
::concrete_optimizer::dag::OperatorIndex add_levelled_op(::rust::Slice<::concrete_optimizer::dag::OperatorIndex const> inputs, double lwe_dim_cost_factor, double fixed_cost, double manp, ::rust::Slice<::std::uint64_t const> out_shape, ::rust::Str comment) noexcept;
|
||||
::concrete_optimizer::dag::OperatorIndex add_round_op(::concrete_optimizer::dag::OperatorIndex input, ::std::uint8_t rounded_precision) noexcept;
|
||||
::concrete_optimizer::dag::OperatorIndex add_unsafe_cast_op(::concrete_optimizer::dag::OperatorIndex input, ::std::uint8_t rounded_precision) noexcept;
|
||||
::concrete_optimizer::v0::Solution optimize_v0(::concrete_optimizer::Options options) const noexcept;
|
||||
::concrete_optimizer::dag::DagSolution optimize(::concrete_optimizer::Options options) const noexcept;
|
||||
::rust::String dump() const noexcept;
|
||||
@@ -1272,6 +1273,8 @@ extern "C" {
|
||||
|
||||
::concrete_optimizer::dag::OperatorIndex concrete_optimizer$cxxbridge1$OperationDag$add_round_op(::concrete_optimizer::OperationDag &self, ::concrete_optimizer::dag::OperatorIndex input, ::std::uint8_t rounded_precision) noexcept;
|
||||
|
||||
::concrete_optimizer::dag::OperatorIndex concrete_optimizer$cxxbridge1$OperationDag$add_unsafe_cast_op(::concrete_optimizer::OperationDag &self, ::concrete_optimizer::dag::OperatorIndex input, ::std::uint8_t rounded_precision) noexcept;
|
||||
|
||||
::concrete_optimizer::v0::Solution concrete_optimizer$cxxbridge1$OperationDag$optimize_v0(::concrete_optimizer::OperationDag const &self, ::concrete_optimizer::Options options) noexcept;
|
||||
|
||||
void concrete_optimizer$cxxbridge1$OperationDag$optimize(::concrete_optimizer::OperationDag const &self, ::concrete_optimizer::Options options, ::concrete_optimizer::dag::DagSolution *return$) noexcept;
|
||||
@@ -1360,6 +1363,10 @@ namespace dag {
|
||||
return concrete_optimizer$cxxbridge1$OperationDag$add_round_op(*this, input, rounded_precision);
|
||||
}
|
||||
|
||||
::concrete_optimizer::dag::OperatorIndex OperationDag::add_unsafe_cast_op(::concrete_optimizer::dag::OperatorIndex input, ::std::uint8_t rounded_precision) noexcept {
|
||||
return concrete_optimizer$cxxbridge1$OperationDag$add_unsafe_cast_op(*this, input, rounded_precision);
|
||||
}
|
||||
|
||||
::concrete_optimizer::v0::Solution OperationDag::optimize_v0(::concrete_optimizer::Options options) const noexcept {
|
||||
return concrete_optimizer$cxxbridge1$OperationDag$optimize_v0(*this, options);
|
||||
}
|
||||
|
||||
@@ -953,6 +953,7 @@ struct OperationDag final : public ::rust::Opaque {
|
||||
::concrete_optimizer::dag::OperatorIndex add_dot(::rust::Slice<::concrete_optimizer::dag::OperatorIndex const> inputs, ::rust::Box<::concrete_optimizer::Weights> weights) noexcept;
|
||||
::concrete_optimizer::dag::OperatorIndex add_levelled_op(::rust::Slice<::concrete_optimizer::dag::OperatorIndex const> inputs, double lwe_dim_cost_factor, double fixed_cost, double manp, ::rust::Slice<::std::uint64_t const> out_shape, ::rust::Str comment) noexcept;
|
||||
::concrete_optimizer::dag::OperatorIndex add_round_op(::concrete_optimizer::dag::OperatorIndex input, ::std::uint8_t rounded_precision) noexcept;
|
||||
::concrete_optimizer::dag::OperatorIndex add_unsafe_cast_op(::concrete_optimizer::dag::OperatorIndex input, ::std::uint8_t rounded_precision) noexcept;
|
||||
::concrete_optimizer::v0::Solution optimize_v0(::concrete_optimizer::Options options) const noexcept;
|
||||
::concrete_optimizer::dag::DagSolution optimize(::concrete_optimizer::Options options) const noexcept;
|
||||
::rust::String dump() const noexcept;
|
||||
|
||||
Reference in New Issue
Block a user