12#include "detray/algebra/concepts.hpp"
13#include "detray/definitions/detail/qualifiers.hpp"
26template <
typename vector_t>
27 requires(concepts::vector<vector_t> || concepts::point<vector_t>)
28DETRAY_HOST std::ostream&
operator<<(std::ostream& out,
const vector_t& v) {
29 using index_t = detray::traits::index_t<vector_t>;
31 constexpr index_t size{detray::traits::size<vector_t>};
34 for (index_t i = 0; i < size; ++i) {
49template <concepts::column_matrix vector_t>
50DETRAY_HOST std::ostream& operator<<(std::ostream& out,
const vector_t& v) {
51 using index_t = detray::traits::index_t<vector_t>;
52 using element_getter_t = detray::traits::element_getter_t<vector_t>;
54 constexpr index_t rows{detray::traits::rows<vector_t>};
57 for (index_t i = 0; i < rows; ++i) {
59 out << std::setw(i == 0 ? 15 : 16) << element_getter_t{}(v, i, 0);
70template <concepts::matrix matrix_t>
71DETRAY_HOST std::ostream& operator<<(std::ostream& out,
const matrix_t& m) {
72 using index_t = detray::traits::index_t<matrix_t>;
73 using element_getter_t = detray::traits::element_getter_t<matrix_t>;
75 constexpr index_t rows{detray::traits::rows<matrix_t>};
76 constexpr index_t columns{detray::traits::columns<matrix_t>};
79 for (index_t i = 0; i < rows; ++i) {
80 out << (i == 0 ?
"[" :
" [");
81 for (index_t j = 0; j < columns; ++j) {
83 out << std::setw(j == 0 ? 15 : 16) << element_getter_t{}(
m, i, j);
99template <concepts::transform3D transform_t>
100DETRAY_HOST std::ostream& operator<<(std::ostream& out,
101 const transform_t& trf) {
110using algebra::operator<<;
constexpr double m
Meter.
Definition Units.hpp:97
Detray include(s).
Definition array_operators.hpp:18