Skip to main content

System Coupling C++ library 2024 R1

InputComplexScalarData

Last update: 17.07.2025
1/*
2* Copyright ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited.
3*/
4
5#pragma once
6
7#include "SystemCouplingParticipant/LibraryType.hpp"
8
9#include "SystemCouplingParticipant/CommonTypes.hpp"
10
11#include <complex>
12#include <cstddef>
13#include <vector>
14
15namespace sysc {
16
24class SYSTEM_COUPLING_PARTICIPANT_DLL InputComplexScalarData {
25public:
35 InputComplexScalarData(std::vector<std::complex<double>>& dataComplex);
36
48 InputComplexScalarData(std::complex<double>* dataComplex, std::size_t size);
49
61 InputComplexScalarData(double* dataComplex, std::size_t size);
62
77 std::vector<double>& dataReal,
78 std::vector<double>& dataImaginary);
79
95 double* dataReal,
96 double* dataImaginary,
97 std::size_t size);
98
108 InputComplexScalarData(std::vector<std::complex<float>>& dataComplex);
109
121 InputComplexScalarData(std::complex<float>* dataComplex, std::size_t size);
122
134 InputComplexScalarData(float* dataComplex, std::size_t size);
135
150 std::vector<float>& dataReal,
151 std::vector<float>& dataImaginary);
152
168 float* dataReal,
169 float* dataImaginary,
170 std::size_t size);
171
174
177
180
183
186
188 std::size_t size() const noexcept;
189
191 bool empty() const noexcept;
192
197 sysc::PrimitiveType getDataType() const noexcept;
198
204 bool isSplitComplex() const noexcept;
205
210 void* getData1() const noexcept;
211
216 void* getData2() const noexcept;
217
218private:
219 PrimitiveType m_dataType{PrimitiveType::Double};
220 bool m_isSplitComplex{false};
221
222 void* m_data1{nullptr};
223 void* m_data2{nullptr};
224
225 std::size_t m_size{0};
226};
227
228} // namespace sysc
Provide a class for input complex scalar data.
InputComplexScalarData(InputComplexScalarData &&)=default
Provide a move-constructor.
InputComplexScalarData(float *dataComplex, std::size_t size)
Provide a constructor for input complex scalar data with compact storage for complex components.
InputComplexScalarData(double *dataComplex, std::size_t size)
Provide a constructor for input complex scalar data with compact storage for complex components.
InputComplexScalarData(std::vector< std::complex< float > > &dataComplex)
Provide a constructor for input complex scalar data with compact storage for complex components.
InputComplexScalarData(float *dataReal, float *dataImaginary, std::size_t size)
Create an input complex scalar data access object with split storage for complex components.
InputComplexScalarData & operator=(const InputComplexScalarData &)=default
Provide a copy-assign operator.
InputComplexScalarData(std::complex< float > *dataComplex, std::size_t size)
Provide a constructor for input complex scalar data with compact storage for complex components.
InputComplexScalarData(std::complex< double > *dataComplex, std::size_t size)
Provide a constructor for input complex scalar data with compact storage for complex components.
InputComplexScalarData(const InputComplexScalarData &)=default
Provide a copy-constructor.
InputComplexScalarData()=default
Provide a default constructor.
InputComplexScalarData & operator=(InputComplexScalarData &&)=default
Provide a move-assign operator.
std::size_t size() const noexcept
Get the size of data.
InputComplexScalarData(std::vector< float > &dataReal, std::vector< float > &dataImaginary)
Create an input complex scalar data access object with split storage for complex components.
InputComplexScalarData(double *dataReal, double *dataImaginary, std::size_t size)
Create an input complex scalar data access object with split storage for complex components.
InputComplexScalarData(std::vector< double > &dataReal, std::vector< double > &dataImaginary)
Create an input complex scalar data access object with split storage for complex components.
InputComplexScalarData(std::vector< std::complex< double > > &dataComplex)
Provide a constructor for input complex scalar data with compact storage for complex components.
PrimitiveType
Provide enum for supported primitive types.

Connect with Ansys