43infer_from_region(
const Kakshya::Region& region,
const std::shared_ptr<Kakshya::SignalSourceContainer>& container =
nullptr);
49infer_from_region_group(
const Kakshya::RegionGroup& group,
const std::shared_ptr<Kakshya::SignalSourceContainer>& container =
nullptr);
55infer_from_segments(
const std::vector<Kakshya::RegionSegment>& segments,
const std::shared_ptr<Kakshya::SignalSourceContainer>& container =
nullptr);
60template <
typename EigenType>
64 std::vector<Kakshya::DataDimension> dimensions;
67 using Scalar =
typename EigenType::Scalar;
69 if constexpr (EigenType::IsVectorAtCompileTime) {
70 if constexpr (MayaFlux::ComplexData<Scalar>) {
73 }
else if constexpr (MayaFlux::DecimalData<Scalar>) {
82 auto rows = eigen_data.rows();
83 auto cols = eigen_data.cols();
85 if constexpr (MayaFlux::ComplexData<Scalar>) {
89 }
else if constexpr (MayaFlux::DecimalData<Scalar>) {
93 }
else if (cols <= 16) {
100 }
else if constexpr (MayaFlux::IntegerData<Scalar>) {
113 return std::make_pair(std::move(dimensions), modality);
125 if constexpr (
requires { data.size(); }) {
127 }
else if constexpr (
requires { std::size(data); }) {
128 size = std::size(data);
133 std::vector<Kakshya::DataDimension> dimensions;
145template <ComputeData T>
147infer_structure(
const T& data,
const std::shared_ptr<Kakshya::SignalSourceContainer>& container =
nullptr)
154 }
else if constexpr (std::is_same_v<T, Kakshya::DataVariant>) {
156 }
else if constexpr (std::is_same_v<T, std::shared_ptr<Kakshya::SignalSourceContainer>>) {
158 }
else if constexpr (std::is_same_v<T, Kakshya::Region>) {
160 }
else if constexpr (std::is_same_v<T, Kakshya::RegionGroup>) {
162 }
else if constexpr (std::is_same_v<T, std::vector<Kakshya::RegionSegment>>) {
164 }
else if constexpr (is_eigen_matrix_v<T>) {
An owning array of schema-bearing Composite elements.
Shared ownership of a CompositeContainer.
std::variant< std::vector< double >, std::vector< float >, std::vector< uint8_t >, std::vector< uint16_t >, std::vector< uint32_t >, std::vector< std::complex< float > >, std::vector< std::complex< double > >, std::vector< glm::vec2 >, std::vector< glm::vec3 >, std::vector< glm::vec4 >, std::vector< glm::mat4 > > DataVariant
Multi-type data storage for different precision needs.
DataModality
Data modality types for cross-modal analysis.
@ AUDIO_MULTICHANNEL
Multi-channel audio.
@ SPECTRAL_2D
2D spectral data (time + frequency)
@ AUDIO_1D
1D audio signal
@ TENSOR_ND
N-dimensional tensor.
@ IMAGE_2D
2D image (grayscale or single channel)
static std::pair< std::vector< Kakshya::DataDimension >, Kakshya::DataModality > infer_from_eigen(const EigenType &eigen_data)
Infer structure from Eigen matrix/vector.
std::pair< std::vector< Kakshya::DataDimension >, Kakshya::DataModality > infer_from_composite_container(const std::shared_ptr< Kakshya::CompositeContainer > &container)
Infer the element axis and modality of a CompositeContainer.
std::pair< std::vector< Kakshya::DataDimension >, Kakshya::DataModality > infer_from_composite_array(const Kakshya::CompositeArray &data)
Infer the element axis and modality of a CompositeArray.
std::pair< std::vector< Kakshya::DataDimension >, Kakshya::DataModality > infer_from_data_variant_vector(const std::vector< Kakshya::DataVariant > &data)
Infer structure from vector of DataVariants (NEW)
std::pair< std::vector< Kakshya::DataDimension >, Kakshya::DataModality > infer_from_region(const Kakshya::Region ®ion, const std::shared_ptr< Kakshya::SignalSourceContainer > &container)
Infer structure from Region (placeholder since regions are markers)
std::pair< std::vector< Kakshya::DataDimension >, Kakshya::DataModality > infer_from_segments(const std::vector< Kakshya::RegionSegment > &segments, const std::shared_ptr< Kakshya::SignalSourceContainer > &container)
Infer structure from RegionSegments.
static std::pair< std::vector< Kakshya::DataDimension >, Kakshya::DataModality > infer_generic_structure(const T &data)
Generic structure inference for unknown types.
std::pair< std::vector< Kakshya::DataDimension >, Kakshya::DataModality > infer_from_data_variant(const Kakshya::DataVariant &data)
Infer structure from DataVariant.
static std::pair< std::vector< Kakshya::DataDimension >, Kakshya::DataModality > infer_structure(const T &data, const std::shared_ptr< Kakshya::SignalSourceContainer > &container=nullptr)
Infer dimensions and modality from any ComputeData type.
std::pair< std::vector< Kakshya::DataDimension >, Kakshya::DataModality > infer_from_container(const std::shared_ptr< Kakshya::SignalSourceContainer > &container)
Infer structure from SignalSourceContainer.
std::pair< std::vector< Kakshya::DataDimension >, Kakshya::DataModality > infer_from_region_group(const Kakshya::RegionGroup &group, const std::shared_ptr< Kakshya::SignalSourceContainer > &container)
Infer structure from RegionGroup.
@ CUSTOM
User-defined or application-specific.
static DataDimension spatial(uint64_t size, char axis, uint64_t stride=1, std::string name="spatial")
Convenience constructor for a spatial dimension.
static DataDimension frequency(uint64_t bins, std::string name="frequency")
Convenience constructor for a frequency dimension.
static DataDimension time(uint64_t samples, std::string name="time")
Convenience constructor for a temporal (time) dimension.
static DataDimension channel(uint64_t count, uint64_t stride=1)
Convenience constructor for a channel dimension.
Minimal dimension descriptor focusing on structure only.