feat(interface): add input graph creation

This commit is contained in:
Mayeul@Zama
2022-05-12 16:09:25 +02:00
committed by mayeul-zama
parent 058d08cf49
commit d5cc6559ee
6 changed files with 1622 additions and 19 deletions

View File

@@ -1,7 +1,16 @@
#include "concrete-optimizer.hpp"
#include <vector>
int main(int argc, char *argv[]) {
concrete_optimizer::Solution solution = concrete_optimizer::optimise_bootstrap(1, 128, 1, .05);
template <typename T>
rust::cxxbridge1::Slice<const T> slice(std::vector<T> &vec) {
const T *data = vec.data();
return rust::cxxbridge1::Slice<const T>(data, vec.size());
}
int test1() {
concrete_optimizer::v0::Solution solution =
concrete_optimizer::v0::optimize_bootstrap(1, 128, 1, .05);
if (solution.glwe_polynomial_size != 1024) {
return 1;
@@ -9,3 +18,38 @@ int main(int argc, char *argv[]) {
return 0;
}
int test2() {
auto dag = concrete_optimizer::dag::empty();
std::vector<uint64_t> shape = {3};
concrete_optimizer::dag::OperatorIndex node1 =
dag->add_input(1, slice(shape));
std::vector<concrete_optimizer::dag::OperatorIndex> inputs = {node1};
std::vector<uint64_t> weight_vec = {3};
rust::cxxbridge1::Box<concrete_optimizer::Weights> weights =
concrete_optimizer::weights::vector(slice(weight_vec));
concrete_optimizer::dag::OperatorIndex node2 =
dag->add_dot(slice(inputs), std::move(weights));
return 0;
}
int main(int argc, char *argv[]) {
int err = test1();
if (err)
return err;
err = test2();
if (err)
return err;
return 0;
}