diff --git a/SConstruct b/SConstruct index a8beec38fc6ff57f91b75ab62fb27bdcbaeea7b3..dee6ab2a06a0d21044143a92a28cafea18319dc1 100644 --- a/SConstruct +++ b/SConstruct @@ -6,7 +6,7 @@ debug = ARGUMENTS.get('debug', 0) env = Environment( #variables = vars, CXX = 'g++', CXXFLAGS = Split('-I./include -I./src \ - -march=native -mtune=native -std=gnu++11 -fabi-version=6 \ + -march=native -mtune=native -std=gnu++14 -fabi-version=6 \ -fpermissive -Wall -Wextra -fopenmp'), LIBPATH = '#lib/', LIBS = Split('-lopenblas -lgivaro -lgmpxx -lgmp'), diff --git a/src/linalg/matrix_factory.h b/src/linalg/matrix_factory.h index 35c7b83f85a2feab79551f8c30f119b91b2b5612..6dfd6c3292d8dd7ae412523546736324127b83bb 100644 --- a/src/linalg/matrix_factory.h +++ b/src/linalg/matrix_factory.h @@ -18,23 +18,23 @@ class MatrixFactory { public: // TODO(pj): Check that no zero element is added // TODO(pj): Is the vector of monomials required? - static std::shared_ptr BuildSparseUpperTriangular( + static std::unique_ptr BuildSparseUpperTriangular( const std::vector >&, const std::vector&); - static std::shared_ptr BuildRowMajor( + static std::unique_ptr BuildRowMajor( const std::vector >&, const std::vector&); - static std::shared_ptr BuildRowMajor( + static std::unique_ptr BuildRowMajor( const std::vector&, const std::vector&); }; -std::shared_ptr MatrixFactory::BuildSparseUpperTriangular( +std::unique_ptr MatrixFactory::BuildSparseUpperTriangular( const std::vector >& list_reductors, const std::vector& list_monomials) { - auto R = std::make_shared(); + auto R = std::make_unique(); R->nb_nonzero_elts_by_row_.clear(); R->row_size_ = list_reductors.size(); R->column_size_ = list_monomials.size(); @@ -62,10 +62,10 @@ std::shared_ptr MatrixFactory::BuildSparseUpperTriangular( return R; } -std::shared_ptr MatrixFactory::BuildRowMajor( +std::unique_ptr MatrixFactory::BuildRowMajor( const std::vector > &list_reductors, const std::vector &list_monomials) { - auto R = std::make_shared(list_reductors.size(), list_monomials.size()); + auto R = std::make_unique(list_reductors.size(), list_monomials.size()); Polynomial tmp; std::map map_mon; for (std::size_t i = 0; i < list_monomials.size(); ++i) @@ -84,10 +84,10 @@ std::shared_ptr MatrixFactory::BuildRowMajor( // TODO: if the input polynomials must be monic, then this should be specified // in an assert -std::shared_ptr MatrixFactory::BuildRowMajor( +std::unique_ptr MatrixFactory::BuildRowMajor( const std::vector& list_pols, const std::vector& list_monomials) { - auto R = std::make_shared(list_pols.size(), list_monomials.size()); + auto R = std::make_unique(list_pols.size(), list_monomials.size()); std::map map_mon; for (std::size_t i = 0; i < list_monomials.size(); ++i) map_mon.insert(std::pair(list_monomials[i], i));