MayaFlux 0.2.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ to_vector()

Eigen::VectorXd MayaFlux::Kakshya::EigenAccess::to_vector ( ) const

Convert DataVariant to Eigen column vector.

Returns
Vector where each element is a sample

For scalar data: direct conversion For complex data: magnitude by default (use to_matrix() for real/imag separation)

Definition at line 5 of file EigenAccess.cpp.

6{
7 return std::visit([this](const auto& vec) -> Eigen::VectorXd {
8 using T = typename std::decay_t<decltype(vec)>::value_type;
9
10 if constexpr (std::is_arithmetic_v<T>) {
11 return scalar_to_vector(vec);
12 } else if constexpr (std::is_same_v<T, std::complex<float>> || std::is_same_v<T, std::complex<double>>) {
13 Eigen::VectorXd result(vec.size());
14 for (Eigen::Index i = 0; i < vec.size(); ++i) {
15 result(i) = static_cast<double>(std::abs(vec[i]));
16 }
17 return result;
18 } else if constexpr (GlmType<T>) {
19 error<std::invalid_argument>(
22 std::source_location::current(),
23 "Cannot convert structured GLM type {} to vector. Use to_matrix() instead.",
24 typeid(T).name());
25 } else {
26 error<std::invalid_argument>(
29 std::source_location::current(),
30 "Unsupported type for Eigen conversion: {}",
31 typeid(T).name());
32 }
33 },
34 m_variant);
35}
Eigen::VectorXd scalar_to_vector(const std::vector< T > &vec) const
const Kakshya::DataVariant & m_variant
@ Runtime
General runtime operations (default fallback)
@ Kakshya
Containers[Signalsource, Stream, File], Regions, DataProcessors.

References MayaFlux::Journal::Kakshya, m_variant, MayaFlux::Journal::Runtime, and scalar_to_vector().

Referenced by MayaFlux::Kakshya::to_eigen_vector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: