Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix build issue on windows #357

Merged
merged 7 commits into from
Dec 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 12 additions & 6 deletions .github/workflows/ci-linux-osx-win-conda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ jobs:
# Workaround for https://github.com/conda-incubator/setup-miniconda/issues/186
conda config --remove channels defaults
# Compilation related dependencies
mamba install cmake compilers make pkg-config doxygen ninja graphviz typing_extensions
mamba install cmake compilers make pkg-config doxygen ninja graphviz typing_extensions llvm-openmp clang
# Main dependencies
mamba install eigen simde
# Test dependencies
Expand Down Expand Up @@ -114,7 +114,7 @@ jobs:
git submodule update --init
mkdir build
cd build
cmake .. -GNinja -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_STANDARD=${{ matrix.cxx_std }} -DCMAKE_INSTALL_PREFIX=${CONDA_PREFIX} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DBUILD_PYTHON_INTERFACE:BOOL=ON -DPYTHON_EXECUTABLE=$(which python3) -DBUILD_DOCUMENTATION:BOOL=ON -DINSTALL_DOCUMENTATION:BOOL=ON -DTEST_JULIA_INTERFACE:BOOL=ON -DOpenMP_ROOT=$CONDA_PREFIX
cmake .. -GNinja -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_STANDARD=${{ matrix.cxx_std }} -DCMAKE_INSTALL_PREFIX=${CONDA_PREFIX} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DBUILD_PYTHON_INTERFACE:BOOL=ON -DPYTHON_EXECUTABLE=$(which python3) -DBUILD_DOCUMENTATION:BOOL=ON -DINSTALL_DOCUMENTATION:BOOL=ON -DTEST_JULIA_INTERFACE:BOOL=OFF -DOpenMP_ROOT=$CONDA_PREFIX

- name: Configure [Conda/macOS14]
if: contains(matrix.os, 'macos-14')
Expand All @@ -135,7 +135,7 @@ jobs:
echo $(whereis ccache)
echo $(which ccache)
cd build
cmake .. -GNinja -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCHECK_RUNTIME_MALLOC:BOOL=ON -DCMAKE_CXX_STANDARD=${{ matrix.cxx_std }} -DCMAKE_INSTALL_PREFIX=${CONDA_PREFIX} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DBUILD_PYTHON_INTERFACE:BOOL=ON -DPYTHON_EXECUTABLE=$(which python3) -DBUILD_DOCUMENTATION:BOOL=ON -DINSTALL_DOCUMENTATION:BOOL=ON -DTEST_JULIA_INTERFACE:BOOL=ON -DBUILD_WITH_OPENMP_SUPPORT:BOOL=ON -DOpenMP_ROOT=$CONDA_PREFIX
cmake .. -GNinja -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCHECK_RUNTIME_MALLOC:BOOL=ON -DCMAKE_CXX_STANDARD=${{ matrix.cxx_std }} -DCMAKE_INSTALL_PREFIX=${CONDA_PREFIX} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DBUILD_PYTHON_INTERFACE:BOOL=ON -DPYTHON_EXECUTABLE=$(which python3) -DBUILD_DOCUMENTATION:BOOL=ON -DINSTALL_DOCUMENTATION:BOOL=ON -DTEST_JULIA_INTERFACE:BOOL=OFF -DBUILD_WITH_OPENMP_SUPPORT:BOOL=ON -DOpenMP_ROOT=$CONDA_PREFIX

- name: Configure [Conda/Windows-2019]
if: contains(matrix.os, 'windows-2019')
Expand All @@ -146,7 +146,9 @@ jobs:
git submodule update --init
mkdir build
cd build
cmake .. -G"Visual Studio 16 2019" -T "ClangCl" -DCMAKE_GENERATOR_PLATFORM=x64 -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_INSTALL_PREFIX=${CONDA_PREFIX}/Library -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_CXX_STANDARD=${{ matrix.cxx_std }} -DBUILD_PYTHON_INTERFACE:BOOL=ON -DPYTHON_SITELIB=${CONDA_PREFIX}/Lib/site-packages -DPYTHON_EXECUTABLE=${CONDA_PREFIX}/python.exe -DOpenMP_ROOT=$CONDA_PREFIX -DBUILD_WITH_OPENMP_SUPPORT:BOOL=ON -DLINK_PYTHON_INTERFACE_TO_OPENMP:BOOL=ON -DBUILD_DOCUMENTATION:BOOL=ON -DINSTALL_DOCUMENTATION:BOOL=ON
export CXX=clang-cl
export CC=clang-cl
cmake .. -G"Ninja" -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_INSTALL_PREFIX=${CONDA_PREFIX}/Library -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_CXX_STANDARD=${{ matrix.cxx_std }} -DBUILD_PYTHON_INTERFACE:BOOL=ON -DPYTHON_SITELIB=${CONDA_PREFIX}/Lib/site-packages -DPYTHON_EXECUTABLE=${CONDA_PREFIX}/python.exe -DOpenMP_ROOT=$CONDA_PREFIX -DBUILD_WITH_OPENMP_SUPPORT:BOOL=ON -DLINK_PYTHON_INTERFACE_TO_OPENMP:BOOL=ON -DBUILD_DOCUMENTATION:BOOL=ON -DINSTALL_DOCUMENTATION:BOOL=ON

- name: Configure [Conda/Windows-latest]
if: contains(matrix.os, 'windows-latest') && contains(matrix.cxx_std, '20')
Expand All @@ -157,7 +159,9 @@ jobs:
git submodule update --init
mkdir build
cd build
cmake .. -G"Visual Studio 17 2022" -T "ClangCl" -DCMAKE_GENERATOR_PLATFORM=x64 -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_INSTALL_PREFIX=${CONDA_PREFIX}/Library -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_CXX_STANDARD=${{ matrix.cxx_std }} -DBUILD_PYTHON_INTERFACE:BOOL=ON -DPYTHON_SITELIB=${CONDA_PREFIX}/Lib/site-packages -DPYTHON_EXECUTABLE=${CONDA_PREFIX}/python.exe -DOpenMP_ROOT=$CONDA_PREFIX -DBUILD_WITH_OPENMP_SUPPORT:BOOL=ON -DLINK_PYTHON_INTERFACE_TO_OPENMP:BOOL=ON -DBUILD_DOCUMENTATION:BOOL=ON -DINSTALL_DOCUMENTATION:BOOL=ON
export CXX=clang-cl
export CC=clang-cl
cmake .. -G"Ninja" -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_INSTALL_PREFIX=${CONDA_PREFIX}/Library -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_CXX_STANDARD=${{ matrix.cxx_std }} -DBUILD_PYTHON_INTERFACE:BOOL=ON -DPYTHON_SITELIB=${CONDA_PREFIX}/Lib/site-packages -DPYTHON_EXECUTABLE=${CONDA_PREFIX}/python.exe -DOpenMP_ROOT=$CONDA_PREFIX -DBUILD_WITH_OPENMP_SUPPORT:BOOL=ON -DLINK_PYTHON_INTERFACE_TO_OPENMP:BOOL=ON -DBUILD_DOCUMENTATION:BOOL=ON -DINSTALL_DOCUMENTATION:BOOL=ON

- name: Configure [Conda/Windows-latest]
if: contains(matrix.os, 'windows-latest') && contains(matrix.cxx_std, '17')
Expand All @@ -168,7 +172,9 @@ jobs:
git submodule update --init
mkdir build
cd build
cmake .. -G"Visual Studio 17 2022" -T "v143" -DCMAKE_GENERATOR_PLATFORM=x64 -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_INSTALL_PREFIX=${CONDA_PREFIX}/Library -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_CXX_STANDARD=${{ matrix.cxx_std }} -DBUILD_PYTHON_INTERFACE:BOOL=ON -DPYTHON_SITELIB=${CONDA_PREFIX}/Lib/site-packages -DPYTHON_EXECUTABLE=${CONDA_PREFIX}/python.exe -DOpenMP_ROOT=$CONDA_PREFIX -DBUILD_WITH_OPENMP_SUPPORT:BOOL=ON -DLINK_PYTHON_INTERFACE_TO_OPENMP:BOOL=ON -DBUILD_DOCUMENTATION:BOOL=ON -DINSTALL_DOCUMENTATION:BOOL=ON
export CXX=clang-cl
export CC=clang-cl
cmake .. -G"Ninja" -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_INSTALL_PREFIX=${CONDA_PREFIX}/Library -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_CXX_STANDARD=${{ matrix.cxx_std }} -DBUILD_PYTHON_INTERFACE:BOOL=ON -DPYTHON_SITELIB=${CONDA_PREFIX}/Lib/site-packages -DPYTHON_EXECUTABLE=${CONDA_PREFIX}/python.exe -DOpenMP_ROOT=$CONDA_PREFIX -DBUILD_WITH_OPENMP_SUPPORT:BOOL=ON -DLINK_PYTHON_INTERFACE_TO_OPENMP:BOOL=ON -DBUILD_DOCUMENTATION:BOOL=ON -DINSTALL_DOCUMENTATION:BOOL=ON

- name: Build [Conda]
shell: bash -l {0}
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

### Fixed
* CMake: Fix link to system cereal in tests ([#353](https://github.com/Simple-Robotics/proxsuite/pull/352))
* Fix windows build error related to template usage in veg ([#357](https://github.com/Simple-Robotics/proxsuite/pull/357))

### Added
* Stub files for Python bindings, using [nanobind's native support](https://nanobind.readthedocs.io/en/latest/typing.html#stub-generation) ([#340](https://github.com/Simple-Robotics/proxsuite/pull/340))
Expand Down
121 changes: 55 additions & 66 deletions include/proxsuite/linalg/dense/core.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,8 @@ static_assert(sizeof(f64) == 8, "f64 should be 64 bits");
LDLT_FN_IMPL3(fnmadd, Prefix, Suffix); /* (-a * b + c) */

#define LDLT_LOAD_STORE(Prefix, Suffix) \
VEG_INLINE static auto load_unaligned( \
ScalarType const* ptr) noexcept -> Pack \
VEG_INLINE static auto load_unaligned(ScalarType const* ptr) noexcept \
-> Pack \
{ \
return Pack{ simde_mm##Prefix##_loadu_##Suffix(ptr) }; \
} \
Expand Down Expand Up @@ -560,9 +560,8 @@ elem_addr(T* ptr,

template<typename Mat>
auto
matrix_elem_addr(Mat&& mat,
isize row,
isize col) noexcept -> decltype(mat.data())
matrix_elem_addr(Mat&& mat, isize row, isize col) noexcept
-> decltype(mat.data())
{
return util::elem_addr<!bool(
proxsuite::linalg::veg::uncvref_t<Mat>::IsRowMajor)>( //
Expand All @@ -575,38 +574,34 @@ matrix_elem_addr(Mat&& mat,

template<typename T>
auto
col(T&& mat, isize col_idx) noexcept ->
typename _detail::RowColAccessImpl<
!bool(proxsuite::linalg::veg::uncvref_t<T>::IsRowMajor)>::template Col<T>
col(T&& mat, isize col_idx) noexcept -> typename _detail::RowColAccessImpl<
!bool(proxsuite::linalg::veg::uncvref_t<T>::IsRowMajor)>::template Col<T>
{
return _detail::RowColAccessImpl<!bool(
proxsuite::linalg::veg::uncvref_t<T>::IsRowMajor)>::col(mat, col_idx);
}
template<typename T>
auto
row(T&& mat, isize row_idx) noexcept ->
typename _detail::RowColAccessImpl<
!bool(proxsuite::linalg::veg::uncvref_t<T>::IsRowMajor)>::template Row<T>
row(T&& mat, isize row_idx) noexcept -> typename _detail::RowColAccessImpl<
!bool(proxsuite::linalg::veg::uncvref_t<T>::IsRowMajor)>::template Row<T>
{
return _detail::RowColAccessImpl<!bool(
proxsuite::linalg::veg::uncvref_t<T>::IsRowMajor)>::row(mat, row_idx);
}

template<typename Mat>
auto
trans(Mat&& mat) noexcept
-> Eigen::Map< //
_detail::const_if<
_detail::ptr_is_const<decltype(mat.data())>::value,
Eigen::Matrix< //
typename proxsuite::linalg::veg::uncvref_t<Mat>::Scalar,
proxsuite::linalg::veg::uncvref_t<Mat>::ColsAtCompileTime,
proxsuite::linalg::veg::uncvref_t<Mat>::RowsAtCompileTime,
bool(proxsuite::linalg::veg::uncvref_t<Mat>::IsRowMajor)
? Eigen::ColMajor
: Eigen::RowMajor>>,
Eigen::Unaligned,
_detail::StrideOf<proxsuite::linalg::veg::uncvref_t<Mat>>>
trans(Mat&& mat) noexcept -> Eigen::Map< //
_detail::const_if<_detail::ptr_is_const<decltype(mat.data())>::value,
Eigen::Matrix< //
typename proxsuite::linalg::veg::uncvref_t<Mat>::Scalar,
proxsuite::linalg::veg::uncvref_t<Mat>::ColsAtCompileTime,
proxsuite::linalg::veg::uncvref_t<Mat>::RowsAtCompileTime,
bool(proxsuite::linalg::veg::uncvref_t<Mat>::IsRowMajor)
? Eigen::ColMajor
: Eigen::RowMajor>>,
Eigen::Unaligned,
_detail::StrideOf<proxsuite::linalg::veg::uncvref_t<Mat>>>
{
return {
mat.data(),
Expand All @@ -621,16 +616,15 @@ trans(Mat&& mat) noexcept

template<typename Mat>
auto
diagonal(Mat&& mat) noexcept
-> Eigen::Map< //
_detail::const_if<_detail::ptr_is_const<decltype(mat.data())>::value,
Eigen::Matrix< //
typename proxsuite::linalg::veg::uncvref_t<Mat>::Scalar,
Eigen::Dynamic,
1,
Eigen::ColMajor>>,
Eigen::Unaligned,
Eigen::InnerStride<Eigen::Dynamic>>
diagonal(Mat&& mat) noexcept -> Eigen::Map< //
_detail::const_if<_detail::ptr_is_const<decltype(mat.data())>::value,
Eigen::Matrix< //
typename proxsuite::linalg::veg::uncvref_t<Mat>::Scalar,
Eigen::Dynamic,
1,
Eigen::ColMajor>>,
Eigen::Unaligned,
Eigen::InnerStride<Eigen::Dynamic>>
{
VEG_DEBUG_ASSERT( //
mat.rows() == mat.cols());
Expand Down Expand Up @@ -667,12 +661,11 @@ submatrix(Mat&& mat,

template<typename Mat>
auto
to_view(Mat&& mat) noexcept
-> Eigen::Map<_detail::const_if<
_detail::ptr_is_const<decltype(mat.data())>::value,
_detail::OwnedAll<proxsuite::linalg::veg::uncvref_t<Mat>>>,
Eigen::Unaligned,
_detail::StrideOf<proxsuite::linalg::veg::uncvref_t<Mat>>>
to_view(Mat&& mat) noexcept -> Eigen::Map<
_detail::const_if<_detail::ptr_is_const<decltype(mat.data())>::value,
_detail::OwnedAll<proxsuite::linalg::veg::uncvref_t<Mat>>>,
Eigen::Unaligned,
_detail::StrideOf<proxsuite::linalg::veg::uncvref_t<Mat>>>
{
return {
mat.data(),
Expand All @@ -687,12 +680,11 @@ to_view(Mat&& mat) noexcept

template<typename Mat>
auto
to_view_dyn_rows(Mat&& mat) noexcept
-> Eigen::Map<_detail::const_if<
_detail::ptr_is_const<decltype(mat.data())>::value,
_detail::OwnedRows<proxsuite::linalg::veg::uncvref_t<Mat>>>,
Eigen::Unaligned,
_detail::StrideOf<proxsuite::linalg::veg::uncvref_t<Mat>>>
to_view_dyn_rows(Mat&& mat) noexcept -> Eigen::Map<
_detail::const_if<_detail::ptr_is_const<decltype(mat.data())>::value,
_detail::OwnedRows<proxsuite::linalg::veg::uncvref_t<Mat>>>,
Eigen::Unaligned,
_detail::StrideOf<proxsuite::linalg::veg::uncvref_t<Mat>>>
{
return {
mat.data(),
Expand All @@ -707,12 +699,11 @@ to_view_dyn_rows(Mat&& mat) noexcept

template<typename Mat>
auto
to_view_dyn_cols(Mat&& mat) noexcept
-> Eigen::Map<_detail::const_if<
_detail::ptr_is_const<decltype(mat.data())>::value,
_detail::OwnedCols<proxsuite::linalg::veg::uncvref_t<Mat>>>,
Eigen::Unaligned,
_detail::StrideOf<proxsuite::linalg::veg::uncvref_t<Mat>>>
to_view_dyn_cols(Mat&& mat) noexcept -> Eigen::Map<
_detail::const_if<_detail::ptr_is_const<decltype(mat.data())>::value,
_detail::OwnedCols<proxsuite::linalg::veg::uncvref_t<Mat>>>,
Eigen::Unaligned,
_detail::StrideOf<proxsuite::linalg::veg::uncvref_t<Mat>>>
{
return {
mat.data(),
Expand Down Expand Up @@ -747,12 +738,11 @@ to_view_dyn(Mat&& mat) noexcept

template<typename Mat>
auto
subrows(Mat&& mat, isize row_start, isize nrows) noexcept
-> Eigen::Map<_detail::const_if<
_detail::ptr_is_const<decltype(mat.data())>::value,
_detail::OwnedRows<proxsuite::linalg::veg::uncvref_t<Mat>>>,
Eigen::Unaligned,
_detail::StrideOf<proxsuite::linalg::veg::uncvref_t<Mat>>>
subrows(Mat&& mat, isize row_start, isize nrows) noexcept -> Eigen::Map<
_detail::const_if<_detail::ptr_is_const<decltype(mat.data())>::value,
_detail::OwnedRows<proxsuite::linalg::veg::uncvref_t<Mat>>>,
Eigen::Unaligned,
_detail::StrideOf<proxsuite::linalg::veg::uncvref_t<Mat>>>
{
return {
util::elem_addr<!bool(proxsuite::linalg::veg::uncvref_t<Mat>::IsRowMajor)>(
Expand All @@ -768,12 +758,11 @@ subrows(Mat&& mat, isize row_start, isize nrows) noexcept

template<typename Mat>
auto
subcols(Mat&& mat, isize col_start, isize ncols) noexcept
-> Eigen::Map<_detail::const_if<
_detail::ptr_is_const<decltype(mat.data())>::value,
_detail::OwnedCols<proxsuite::linalg::veg::uncvref_t<Mat>>>,
Eigen::Unaligned,
_detail::StrideOf<proxsuite::linalg::veg::uncvref_t<Mat>>>
subcols(Mat&& mat, isize col_start, isize ncols) noexcept -> Eigen::Map<
_detail::const_if<_detail::ptr_is_const<decltype(mat.data())>::value,
_detail::OwnedCols<proxsuite::linalg::veg::uncvref_t<Mat>>>,
Eigen::Unaligned,
_detail::StrideOf<proxsuite::linalg::veg::uncvref_t<Mat>>>
{
return {
util::elem_addr<!bool(proxsuite::linalg::veg::uncvref_t<Mat>::IsRowMajor)>(
Expand Down Expand Up @@ -859,8 +848,8 @@ temp_mat_req(proxsuite::linalg::veg::Tag<T> /*tag*/,

template<typename T>
auto
temp_vec_req(proxsuite::linalg::veg::Tag<T> /*tag*/,
isize rows) noexcept -> proxsuite::linalg::veg::dynstack::StackReq
temp_vec_req(proxsuite::linalg::veg::Tag<T> /*tag*/, isize rows) noexcept
-> proxsuite::linalg::veg::dynstack::StackReq
{
return {
rows * isize{ sizeof(T) },
Expand Down
4 changes: 2 additions & 2 deletions include/proxsuite/linalg/dense/factorize.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -350,8 +350,8 @@ factorize_recursive(Mat&& mat,

template<typename T>
auto
factorize_req(proxsuite::linalg::veg::Tag<T> tag,
isize n) noexcept -> proxsuite::linalg::veg::dynstack::StackReq
factorize_req(proxsuite::linalg::veg::Tag<T> tag, isize n) noexcept
-> proxsuite::linalg::veg::dynstack::StackReq
{
return proxsuite::linalg::dense::factorize_blocked_req(tag, n, 128) |
proxsuite::linalg::dense::factorize_recursive_req(tag, n);
Expand Down
24 changes: 12 additions & 12 deletions include/proxsuite/linalg/dense/ldlt.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -614,23 +614,23 @@ struct Ldlt
auto dim() const noexcept -> isize { return perm.len(); }

auto ld_col() const noexcept -> Eigen::Map< //
ColMat const,
Eigen::Unaligned,
Eigen::OuterStride<DYN>>
ColMat const,
Eigen::Unaligned,
Eigen::OuterStride<DYN>>
{
return { ld_storage.ptr(), dim(), dim(), stride };
}
auto ld_col_mut() noexcept -> Eigen::Map< //
ColMat,
Eigen::Unaligned,
Eigen::OuterStride<DYN>>
ColMat,
Eigen::Unaligned,
Eigen::OuterStride<DYN>>
{
return { ld_storage.ptr_mut(), dim(), dim(), stride };
}
auto ld_row() const noexcept -> Eigen::Map< //
RowMat const,
Eigen::Unaligned,
Eigen::OuterStride<DYN>>
RowMat const,
Eigen::Unaligned,
Eigen::OuterStride<DYN>>
{
return {
ld_storage.ptr(),
Expand All @@ -640,9 +640,9 @@ struct Ldlt
};
}
auto ld_row_mut() noexcept -> Eigen::Map< //
RowMat,
Eigen::Unaligned,
Eigen::OuterStride<DYN>>
RowMat,
Eigen::Unaligned,
Eigen::OuterStride<DYN>>
{
return {
ld_storage.ptr_mut(),
Expand Down
13 changes: 6 additions & 7 deletions include/proxsuite/linalg/sparse/factorize.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -249,8 +249,8 @@ dense_ltsolve(DenseVecMut<T> x, MatRef<T, I> l) noexcept(false)
*/
template<typename I>
auto
etree_req(proxsuite::linalg::veg::Tag<I> /*tag*/,
isize n) noexcept -> proxsuite::linalg::veg::dynstack::StackReq
etree_req(proxsuite::linalg::veg::Tag<I> /*tag*/, isize n) noexcept
-> proxsuite::linalg::veg::dynstack::StackReq
{
return { n * isize{ sizeof(I) }, alignof(I) };
}
Expand Down Expand Up @@ -456,8 +456,8 @@ postorder_depth_first_search( //
*/
template<typename I>
auto
postorder_req(proxsuite::linalg::veg::Tag<I> /*tag*/,
isize n) noexcept -> proxsuite::linalg::veg::dynstack::StackReq
postorder_req(proxsuite::linalg::veg::Tag<I> /*tag*/, isize n) noexcept
-> proxsuite::linalg::veg::dynstack::StackReq
{
return { (3 * n) * isize(sizeof(I)), alignof(I) };
}
Expand Down Expand Up @@ -716,9 +716,8 @@ column_counts(I* counts,

template<typename I>
auto
amd_req(proxsuite::linalg::veg::Tag<I> /*tag*/,
isize /*n*/,
isize nnz) noexcept -> proxsuite::linalg::veg::dynstack::StackReq
amd_req(proxsuite::linalg::veg::Tag<I> /*tag*/, isize /*n*/, isize nnz) noexcept
-> proxsuite::linalg::veg::dynstack::StackReq
{
return { nnz * isize{ sizeof(char) }, alignof(char) };
}
Expand Down
8 changes: 4 additions & 4 deletions include/proxsuite/linalg/veg/internal/dyn_index.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -223,8 +223,8 @@ struct binary_traits<Fix<0>, Dyn> : binary_traits<Dyn, Dyn>
{
using Mul = Fix<0>;
VEG_NODISCARD
constexpr VEG_INLINE static auto mul_fn(Fix<0> /*a*/,
Dyn /*b*/) VEG_NOEXCEPT -> Mul
constexpr VEG_INLINE static auto mul_fn(Fix<0> /*a*/, Dyn /*b*/) VEG_NOEXCEPT
-> Mul
{
return {};
}
Expand All @@ -234,8 +234,8 @@ template<isize N>
struct binary_traits<Dyn, Fix<N>> : binary_traits<Dyn, Dyn>
{
using Mul = typename binary_traits<Fix<N>, Dyn>::Mul;
VEG_INLINE static constexpr auto mul_fn(Dyn a,
Fix<N> /*b*/) VEG_NOEXCEPT -> Mul
VEG_INLINE static constexpr auto mul_fn(Dyn a, Fix<N> /*b*/) VEG_NOEXCEPT
-> Mul
{
return binary_traits<Fix<N>, Dyn>::mul_fn({}, a);
}
Expand Down
Loading
Loading