1#ifndef TATOOINE_TENSOR_IO_H
2#define TATOOINE_TENSOR_IO_H
10template <
typename Tensor,
typename T,
size_t N>
14 out << std::scientific;
15 for (
size_t i = 0; i < N; ++i) {
16 if constexpr (!is_complex<T>) {}
20 out << std::defaultfloat;
24template <
typename Tensor,
typename T,
size_t M,
size_t N>
27 out << std::scientific;
28 for (
size_t j = 0; j < M; ++j) {
30 for (
size_t i = 0; i < N; ++i) {
31 if constexpr (!is_complex<T>) {
32 if (m(j, i) >= 0) { out <<
' '; }
34 out << m(j, i) <<
' ';
38 out << std::defaultfloat;
46 out << std::scientific;
47 for (
size_t i = 0; i < t.dimension(0); ++i) {
53 out << std::defaultfloat;
54 }
else if (t.rank() == 2) {
55 out << std::scientific;
56 for (
size_t r = 0; r < t.dimension(0); ++r) {
58 for (
size_t c = 0; c < t.dimension(1); ++c) {
64 out << t(r, c) <<
' ';
68 out << std::defaultfloat;
Definition: tensor_concepts.h:17
Definition: algorithm.h:6
auto operator<<(std::ostream &out, linspace< Real > const &l) -> auto &
Definition: linspace.h:165
typename value_type_impl< T >::type value_type
Definition: type_traits.h:280
static constexpr auto is_complex
Definition: type_traits.h:126
Definition: base_tensor.h:23