feat(optimizer): multi-parameters, partitionning using norm2

This commit is contained in:
rudy
2023-09-15 14:37:36 +02:00
committed by rudy-6-4
parent b2f382f63a
commit c298408f26
18 changed files with 402 additions and 129 deletions

View File

@@ -944,6 +944,7 @@ namespace concrete_optimizer {
struct OperationDag;
struct Weights;
enum class Encoding : ::std::uint8_t;
enum class MultiParamStrategy : ::std::uint8_t;
struct Options;
namespace dag {
struct OperatorIndex;
@@ -1070,12 +1071,21 @@ struct DagSolution final {
#endif // CXXBRIDGE1_STRUCT_concrete_optimizer$dag$DagSolution
} // namespace dag
#ifndef CXXBRIDGE1_ENUM_concrete_optimizer$MultiParamStrategy
#define CXXBRIDGE1_ENUM_concrete_optimizer$MultiParamStrategy
enum class MultiParamStrategy : ::std::uint8_t {
ByPrecision = 0,
ByPrecisionAndNorm2 = 1,
};
#endif // CXXBRIDGE1_ENUM_concrete_optimizer$MultiParamStrategy
#ifndef CXXBRIDGE1_STRUCT_concrete_optimizer$Options
#define CXXBRIDGE1_STRUCT_concrete_optimizer$Options
struct Options final {
::std::uint64_t security_level;
double maximum_acceptable_error_probability;
bool key_sharing;
::concrete_optimizer::MultiParamStrategy multi_param_strategy;
double default_log_norm2_woppbs;
bool use_gpu_constraints;
::concrete_optimizer::Encoding encoding;

View File

@@ -925,6 +925,7 @@ namespace concrete_optimizer {
struct OperationDag;
struct Weights;
enum class Encoding : ::std::uint8_t;
enum class MultiParamStrategy : ::std::uint8_t;
struct Options;
namespace dag {
struct OperatorIndex;
@@ -1051,12 +1052,21 @@ struct DagSolution final {
#endif // CXXBRIDGE1_STRUCT_concrete_optimizer$dag$DagSolution
} // namespace dag
#ifndef CXXBRIDGE1_ENUM_concrete_optimizer$MultiParamStrategy
#define CXXBRIDGE1_ENUM_concrete_optimizer$MultiParamStrategy
enum class MultiParamStrategy : ::std::uint8_t {
ByPrecision = 0,
ByPrecisionAndNorm2 = 1,
};
#endif // CXXBRIDGE1_ENUM_concrete_optimizer$MultiParamStrategy
#ifndef CXXBRIDGE1_STRUCT_concrete_optimizer$Options
#define CXXBRIDGE1_STRUCT_concrete_optimizer$Options
struct Options final {
::std::uint64_t security_level;
double maximum_acceptable_error_probability;
bool key_sharing;
::concrete_optimizer::MultiParamStrategy multi_param_strategy;
double default_log_norm2_woppbs;
bool use_gpu_constraints;
::concrete_optimizer::Encoding encoding;