From 2b84bbc79cac8ffc7825587f2ab3e8ada2faacb6 Mon Sep 17 00:00:00 2001 From: Ahmed Irfan <43099566+ahmed-irfan@users.noreply.github.com> Date: Mon, 16 Dec 2024 17:40:55 -0800 Subject: [PATCH 1/4] Update ci.yml --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 24676ebc..3e9751ea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,7 @@ jobs: run: | mkdir -p build cd build - cmake -DCMAKE_BUILD_TYPE=${{ matrix.mode }} .. + ${{ matrix.env }} cmake -DCMAKE_BUILD_TYPE=${{ matrix.mode }} .. make - name: Check From 8a6f6848a41f35820b9cdf90d3b4e62d803f29f6 Mon Sep 17 00:00:00 2001 From: Ahmed <43099566+ahmed-irfan@users.noreply.github.com> Date: Mon, 16 Dec 2024 17:51:18 -0800 Subject: [PATCH 2/4] use vector --- src/polyxx/polynomial.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/polyxx/polynomial.cpp b/src/polyxx/polynomial.cpp index aa0891ad..0615b6e6 100644 --- a/src/polyxx/polynomial.cpp +++ b/src/polyxx/polynomial.cpp @@ -377,11 +377,11 @@ namespace poly { std::vector psc(const Polynomial& p, const Polynomial& q) { std::size_t size = std::min(degree(p), degree(q)) + 1; - lp_polynomial_t* tmp[size]; + std::vector tmp; for (std::size_t i = 0; i < size; ++i) { - tmp[i] = lp_polynomial_new(detail::context(p, q)); + tmp.push_back(lp_polynomial_new(detail::context(p, q))); } - lp_polynomial_psc(tmp, p.get_internal(), q.get_internal()); + lp_polynomial_psc(tmp.data(), p.get_internal(), q.get_internal()); std::vector res; for (std::size_t i = 0; i < size; ++i) { res.emplace_back(tmp[i]); @@ -391,11 +391,11 @@ namespace poly { std::vector subres(const Polynomial& p, const Polynomial& q) { std::size_t size = std::min(degree(p), degree(q)) + 1; - lp_polynomial_t* tmp[size]; + std::vector tmp; for (std::size_t i = 0; i < size; ++i) { - tmp[i] = lp_polynomial_new(detail::context(p, q)); + tmp.push_back(lp_polynomial_new(detail::context(p, q))); } - lp_polynomial_subres(tmp, p.get_internal(), q.get_internal()); + lp_polynomial_subres(tmp.data(), p.get_internal(), q.get_internal()); std::vector res; for (std::size_t i = 0; i < size; ++i) { res.emplace_back(tmp[i]); From 1f2bf29b0fddce7a5f522b78b036cf8d396c6780 Mon Sep 17 00:00:00 2001 From: Ahmed <43099566+ahmed-irfan@users.noreply.github.com> Date: Mon, 16 Dec 2024 18:05:31 -0800 Subject: [PATCH 3/4] more clang fixes --- src/polyxx/polynomial.cpp | 2 ++ src/polyxx/upolynomial.cpp | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/polyxx/polynomial.cpp b/src/polyxx/polynomial.cpp index 0615b6e6..a71c51f7 100644 --- a/src/polyxx/polynomial.cpp +++ b/src/polyxx/polynomial.cpp @@ -386,6 +386,7 @@ namespace poly { for (std::size_t i = 0; i < size; ++i) { res.emplace_back(tmp[i]); } + tmp.clear(); return res; } @@ -400,6 +401,7 @@ namespace poly { for (std::size_t i = 0; i < size; ++i) { res.emplace_back(tmp[i]); } + tmp.clear(); return res; } diff --git a/src/polyxx/upolynomial.cpp b/src/polyxx/upolynomial.cpp index 90c21c1f..9e18c1fd 100644 --- a/src/polyxx/upolynomial.cpp +++ b/src/polyxx/upolynomial.cpp @@ -100,16 +100,19 @@ namespace poly { } std::vector coefficients(const UPolynomial& p) { - lp_integer_t coeffs[degree(p) + 1]; + std::vector coeffs; + lp_integer_t *tmp = nullptr; for (std::size_t i = 0; i < degree(p) + 1; ++i) { - lp_integer_construct_from_int(lp_Z, &coeffs[i], 0); + lp_integer_construct_from_int(lp_Z, tmp, 0); + coeffs.push_back(*tmp); } - lp_upolynomial_unpack(p.get_internal(), coeffs); + lp_upolynomial_unpack(p.get_internal(), coeffs.data()); std::vector res; for (std::size_t i = 0; i < degree(p) + 1; ++i) { res.emplace_back(&coeffs[i]); lp_integer_destruct(&coeffs[i]); } + coeffs.clear(); return res; } From a3c127f8ffdb2cf1199facd4c65bafae3a60b1ee Mon Sep 17 00:00:00 2001 From: Ahmed <43099566+ahmed-irfan@users.noreply.github.com> Date: Mon, 16 Dec 2024 18:43:22 -0800 Subject: [PATCH 4/4] fix --- src/polyxx/upolynomial.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/polyxx/upolynomial.cpp b/src/polyxx/upolynomial.cpp index 9e18c1fd..935b51a3 100644 --- a/src/polyxx/upolynomial.cpp +++ b/src/polyxx/upolynomial.cpp @@ -101,10 +101,10 @@ namespace poly { std::vector coefficients(const UPolynomial& p) { std::vector coeffs; - lp_integer_t *tmp = nullptr; + lp_integer_t tmp; for (std::size_t i = 0; i < degree(p) + 1; ++i) { - lp_integer_construct_from_int(lp_Z, tmp, 0); - coeffs.push_back(*tmp); + lp_integer_construct_from_int(lp_Z, &tmp, 0); + coeffs.push_back(tmp); } lp_upolynomial_unpack(p.get_internal(), coeffs.data()); std::vector res;