// Copyright 2016, Tobias Hermann. // https://github.com/Dobiasd/frugally-deep // Distributed under the MIT License. // (See accompanying LICENSE file or at // https://opensource.org/licenses/MIT) #pragma once #include "fdeep/common.hpp" #include "fdeep/shape2_variable.hpp" #include "fdeep/shape2.hpp" #include #include #include #include #include namespace fdeep { namespace internal { class shape5_variable { public: explicit shape5_variable( fplus::maybe size_dim_5, fplus::maybe size_dim_4, fplus::maybe height, fplus::maybe width, fplus::maybe depth) : size_dim_5_(size_dim_5), size_dim_4_(size_dim_4), height_(height), width_(width), depth_(depth) { } fplus::maybe size_dim_5_; fplus::maybe size_dim_4_; fplus::maybe height_; fplus::maybe width_; fplus::maybe depth_; }; inline bool operator == (const shape5_variable& lhs, const shape5_variable& rhs) { return lhs.size_dim_5_ == rhs.size_dim_5_ && lhs.size_dim_4_ == rhs.size_dim_4_ && lhs.height_ == rhs.height_ && lhs.width_ == rhs.width_ && lhs.depth_ == rhs.depth_; } inline bool operator != (const shape5_variable& lhs, const shape5_variable& rhs) { return !(lhs == rhs); } } // namespace internal using shape5_variable = internal::shape5_variable; inline std::string show_shape5_variable(const shape5_variable& s) { const std::vector> dimensions = { s.size_dim_5_, s.size_dim_4_, s.height_, s.width_, s.depth_ }; const auto dimensions_repr = fplus::transform( fplus::show_maybe, dimensions); return fplus::show_cont_with_frame(", ", "(", ")", dimensions_repr); } inline std::string show_shape5s_variable( const std::vector& shapes) { return fplus::show_cont(fplus::transform(show_shape5_variable, shapes)); } } // namespace fdeep