#pragma once #include "schema.hpp" #include "schema_meta.hpp" namespace saw { namespace schema { /** * Tensor Schema. I think I need this due to the amount of mathematical operators being able to be represented by this one construct. */ template struct Tensor { static constexpr uint64_t Rank = sizeof...(D); static constexpr std::array Dimension{D...}; static constexpr string_literal name = "Tensor"; }; template using Scalar = Tensor; template using Vector = Tensor; template using Matrix = Tensor; } template struct meta_schema> { using Schema = schema::Tensor; using MetaSchema = schema::FixedArray; }; }