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

A few small fixes for compilation and installation #132

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
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
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ install(TARGETS linalg EXPORT linalgTargets
install(EXPORT linalgTargets
FILE linalgTargets.cmake
NAMESPACE std::
DESTINATION cmake
DESTINATION lib/cmake/stdBLAS
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be lib/cmake/<ProjectName> so stdBLAS -> linalg?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, yes, that's right, thanks for the catch!

)

export(TARGETS linalg
Expand All @@ -145,7 +145,7 @@ write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/LinAlgConfigVersion
)

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/LinAlgConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/LinAlgConfigVersion.cmake
DESTINATION cmake
DESTINATION lib/cmake/stdBLAS
)

################################################################################
Expand Down
14 changes: 9 additions & 5 deletions include/experimental/__p1673_bits/layout_blas_general.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@
#include "maybe_static_size.hpp"
#include "layout_tags.hpp"

#include <experimental/__p0009_bits/macros.hpp>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The P1673 implementation shouldn't be depending on P0009 implementation details. Would you consider instead just including the main mdspan header, <experimental/mdspan>? Thanks!

#include <experimental/__p0009_bits/layout_left.hpp>
#include <experimental/__p0009_bits/layout_right.hpp>

namespace std {
namespace experimental {
inline namespace __p1673_version_0 {
Expand Down Expand Up @@ -151,22 +155,22 @@ class __layout_blas_impl {
MDSPAN_INLINE_FUNCTION constexpr __extents_type extents() const noexcept { return _base_layout.extents(); }

MDSPAN_INLINE_FUNCTION
constexpr __extents_type::size_type required_span_size() const noexcept {
constexpr typename __extents_type::size_type required_span_size() const noexcept {
return _base_layout.required_span_size() * __lda.value;
}

MDSPAN_INLINE_FUNCTION
constexpr __extents_type::size_type stride(size_t r) const noexcept {
constexpr typename __extents_type::size_type stride(size_t r) const noexcept {
return _base_layout.stride(r) * __lda.value;
}

template<class OtherExtents, __extents_type::size_type OtherLDA>
template<class OtherExtents, typename __extents_type::size_type OtherLDA>
MDSPAN_INLINE_FUNCTION
friend constexpr bool operator==(__layout_blas_impl const& a, __layout_blas_impl<OtherExtents, OtherLDA> const& b) noexcept {
return a.extents() == b.extents() && a.__lda == b.__lda;
}

template<class OtherExtents, __extents_type::size_type OtherLDA>
template<class OtherExtents, typename __extents_type::size_type OtherLDA>
MDSPAN_INLINE_FUNCTION
friend constexpr bool operator!=(__layout_blas_impl const& a, __layout_blas_impl<OtherExtents, OtherLDA> const& b) noexcept {
return a.extents() != b.extents() || a.__lda != b.__lda;
Expand All @@ -175,7 +179,7 @@ class __layout_blas_impl {
// Needed to work with subspan()
template <size_t N>
struct __static_stride_workaround {
static constexpr __extents_type::size_type value = __lda_t::is_static ?
static constexpr typename __extents_type::size_type value = __lda_t::is_static ?
(BaseLayout::template __static_stride_workaround<N>::value == dynamic_extent ? dynamic_extent :
(__lda_t::value_static * BaseLayout::template __static_stride_workaround<N>::value)
) : dynamic_extent;
Expand Down
4 changes: 2 additions & 2 deletions include/experimental/__p1673_bits/transposed.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ class layout_transpose {
// TODO insert other standard mapping things

// for non-batched layouts
Extents::size_type operator() (Extents::size_type i, Extents::size_type j) const {
typename Extents::size_type operator() (typename Extents::size_type i, typename Extents::size_type j) const {
return nested_mapping(j, i);
}

Expand All @@ -93,7 +93,7 @@ class layout_transpose {
return nested_mapping.is_strided();
}

constexpr Extents::size_type stride(size_t r) const noexcept {
constexpr typename Extents::size_type stride(size_t r) const noexcept {
// FIXME this only works for rank 2
return nested_mapping.stride(size_t(1) - r);
}
Expand Down