51 #include "services/daal_memory.h"
52 #include "data_management/data/numeric_table.h"
53 #include "data_management/data/homogen_numeric_table.h"
54 #include "services/daal_shared_ptr.h"
55 #include "data_management/data/data_serialize.h"
59 namespace data_management
73 template<
typename DataType = DAAL_DATA_TYPE>
74 class DAAL_EXPORT Matrix :
public HomogenNumericTable<DataType>
77 DECLARE_SERIALIZABLE_TAG();
85 Matrix(
size_t nColumns = 0,
size_t nRows = 0, DataType *
const ptr = 0 ):
86 HomogenNumericTable<DataType>( services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows ) { }
96 static services::SharedPtr<Matrix<DataType> > create(
size_t nColumns = 0,
size_t nRows = 0, DataType *
const ptr = 0,
97 services::Status *stat = NULL)
99 return create(DictionaryIface::notEqual, nColumns, nRows, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), stat);
109 Matrix(
size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr):
110 HomogenNumericTable<DataType>( ptr, nColumns, nRows ) { }
120 static services::SharedPtr<Matrix<DataType> > create(
size_t nColumns,
size_t nRows, services::SharedPtr<DataType> &ptr,
121 services::Status *stat = NULL)
123 return create(DictionaryIface::notEqual, nColumns, nRows, ptr, stat);
133 Matrix( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns = 0,
size_t nRows = 0, DataType *
const ptr = 0 ):
134 HomogenNumericTable<DataType>( featuresEqual, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows ) { }
145 static services::SharedPtr<Matrix<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
146 size_t nColumns = 0,
size_t nRows = 0, DataType *
const ptr = 0,
147 services::Status *stat = NULL)
149 return create(featuresEqual, nColumns, nRows, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), stat);
159 Matrix( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr ):
160 HomogenNumericTable<DataType>( featuresEqual, ptr, nColumns, nRows ) { }
171 static services::SharedPtr<Matrix<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
172 size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr,
173 services::Status *stat = NULL)
175 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(Matrix, DataType, featuresEqual, nColumns, nRows, ptr);
184 Matrix(
size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag ):
185 HomogenNumericTable<DataType>( nColumns, nRows, memoryAllocationFlag ) { }
195 static services::SharedPtr<Matrix<DataType> > create(
size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag,
196 services::Status *stat = NULL)
198 return create(DictionaryIface::notEqual, nColumns, nRows, memoryAllocationFlag, stat);
208 Matrix( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag ):
209 HomogenNumericTable<DataType>( featuresEqual, nColumns, nRows, memoryAllocationFlag ) { }
220 static services::SharedPtr<Matrix<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
221 size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag,
222 services::Status *stat = NULL)
224 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(Matrix, DataType, featuresEqual, nColumns, nRows, memoryAllocationFlag);
234 Matrix(
size_t nColumns,
size_t nRows, DataType *
const ptr,
const DataType &constValue ):
235 HomogenNumericTable<DataType>( services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows, constValue ) { }
246 static services::SharedPtr<Matrix<DataType> > create(
size_t nColumns,
size_t nRows, DataType *
const ptr,
247 const DataType &constValue, services::Status *stat = NULL)
249 return create(DictionaryIface::notEqual, nColumns, nRows, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), constValue, stat);
259 Matrix(
size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr,
const DataType &constValue ):
260 HomogenNumericTable<DataType>( ptr, nColumns, nRows, constValue ) { }
271 static services::SharedPtr<Matrix<DataType> > create(
size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr,
272 const DataType &constValue, services::Status *stat = NULL)
274 return create(DictionaryIface::notEqual, nColumns, nRows, ptr, constValue, stat);
285 Matrix( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows, DataType *
const ptr,
const DataType &constValue ):
286 HomogenNumericTable<DataType>( featuresEqual, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows, constValue ) { }
298 static services::SharedPtr<Matrix<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
299 size_t nColumns,
size_t nRows, DataType *
const ptr,
300 const DataType &constValue, services::Status *stat = NULL)
302 return create(featuresEqual, nColumns, nRows, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), constValue, stat);
313 Matrix( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr,
const DataType &constValue ):
314 HomogenNumericTable<DataType>( featuresEqual, ptr, nColumns, nRows, constValue ) { }
326 static services::SharedPtr<Matrix<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
327 size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr,
328 const DataType &constValue, services::Status *stat = NULL)
330 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(Matrix, DataType, featuresEqual, nColumns, nRows, ptr, constValue);
340 Matrix(
size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag,
341 const DataType &constValue ):
342 HomogenNumericTable<DataType>( nColumns, nRows, memoryAllocationFlag, constValue ) { }
353 static services::SharedPtr<Matrix<DataType> > create(
size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag,
354 const DataType &constValue, services::Status *stat = NULL)
356 return create(DictionaryIface::notEqual, nColumns, nRows, memoryAllocationFlag, constValue, stat);
367 Matrix( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
368 NumericTable::AllocationFlag memoryAllocationFlag,
const DataType &constValue ):
369 HomogenNumericTable<DataType>( featuresEqual, nColumns, nRows, memoryAllocationFlag, constValue ) { }
381 static services::SharedPtr<Matrix<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
382 size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag,
383 const DataType &constValue, services::Status *stat = NULL)
385 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(Matrix, DataType, featuresEqual, nColumns, nRows, memoryAllocationFlag, constValue);
389 virtual ~Matrix() { }
393 Matrix(DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
394 const services::SharedPtr<DataType> &ptr, services::Status &st):
395 HomogenNumericTable<DataType>(featuresEqual, ptr, nColumns, nRows, st) { }
397 Matrix(DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
398 NumericTable::AllocationFlag memoryAllocationFlag, services::Status &st):
399 HomogenNumericTable<DataType>(featuresEqual, nColumns, nRows, memoryAllocationFlag, st) { }
401 Matrix(DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
402 const services::SharedPtr<DataType> &ptr,
const DataType &constValue,
403 services::Status &st):
404 HomogenNumericTable<DataType>(featuresEqual, ptr, nColumns, nRows, constValue, st) { }
406 Matrix(DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
407 NumericTable::AllocationFlag memoryAllocationFlag,
const DataType &constValue, services::Status &st):
408 HomogenNumericTable<DataType>(featuresEqual, nColumns, nRows, memoryAllocationFlag, constValue, st) { }
412 using interface1::Matrix;
daal::data_management::interface1::NumericTableIface::AllocationFlag
AllocationFlag
Enumeration to specify whether the Numeric Table must allocate memory.
Definition: numeric_table.h:309
daal::data_management::interface1::Matrix::Matrix
Matrix(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns, size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag, const DataType &constValue)
Definition: matrix.h:367
daal::data_management::interface1::Matrix::create
static services::SharedPtr< Matrix< DataType > > create(size_t nColumns=0, size_t nRows=0, DataType *const ptr=0, services::Status *stat=NULL)
Definition: matrix.h:96
daal
Definition: algorithm_base_common.h:57
daal::data_management::interface1::Matrix::Matrix
Matrix(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns, size_t nRows, DataType *const ptr, const DataType &constValue)
Definition: matrix.h:285
daal::data_management::interface1::Matrix
Represents a two-dimensional table of numbers of the same type.
Definition: matrix.h:74
daal::data_management::interface1::Matrix::Matrix
Matrix(size_t nColumns, size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag)
Definition: matrix.h:184
daal::data_management::interface1::Matrix::create
static services::SharedPtr< Matrix< DataType > > create(size_t nColumns, size_t nRows, services::SharedPtr< DataType > &ptr, services::Status *stat=NULL)
Definition: matrix.h:120
daal::data_management::interface1::Matrix::Matrix
Matrix(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns, size_t nRows, const services::SharedPtr< DataType > &ptr, const DataType &constValue)
Definition: matrix.h:313
daal::data_management::interface1::Matrix::Matrix
Matrix(size_t nColumns=0, size_t nRows=0, DataType *const ptr=0)
Definition: matrix.h:85
daal::data_management::interface1::Matrix::create
static services::SharedPtr< Matrix< DataType > > create(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns, size_t nRows, const services::SharedPtr< DataType > &ptr, const DataType &constValue, services::Status *stat=NULL)
Definition: matrix.h:326
daal::data_management::interface1::Matrix::Matrix
Matrix(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns, size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag)
Definition: matrix.h:208
daal::data_management::interface1::Matrix::create
static services::SharedPtr< Matrix< DataType > > create(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns, size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag, const DataType &constValue, services::Status *stat=NULL)
Definition: matrix.h:381
daal::data_management::interface1::Matrix::create
static services::SharedPtr< Matrix< DataType > > create(size_t nColumns, size_t nRows, DataType *const ptr, const DataType &constValue, services::Status *stat=NULL)
Definition: matrix.h:246
daal::data_management::interface1::Matrix::Matrix
Matrix(size_t nColumns, size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag, const DataType &constValue)
Definition: matrix.h:340
daal::data_management::interface1::Matrix::Matrix
Matrix(size_t nColumns, size_t nRows, const services::SharedPtr< DataType > &ptr, const DataType &constValue)
Definition: matrix.h:259
daal::data_management::interface1::Matrix::Matrix
Matrix(size_t nColumns, size_t nRows, const services::SharedPtr< DataType > &ptr)
Definition: matrix.h:109
daal::data_management::interface1::Matrix::Matrix
Matrix(size_t nColumns, size_t nRows, DataType *const ptr, const DataType &constValue)
Definition: matrix.h:234
daal::data_management::interface1::Matrix::create
static services::SharedPtr< Matrix< DataType > > create(size_t nColumns, size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag, services::Status *stat=NULL)
Definition: matrix.h:195
daal::data_management::interface1::Matrix::create
static services::SharedPtr< Matrix< DataType > > create(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns, size_t nRows, const services::SharedPtr< DataType > &ptr, services::Status *stat=NULL)
Definition: matrix.h:171
daal::data_management::interface1::Matrix::Matrix
Matrix(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns=0, size_t nRows=0, DataType *const ptr=0)
Definition: matrix.h:133
daal::data_management::interface1::Matrix::create
static services::SharedPtr< Matrix< DataType > > create(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns=0, size_t nRows=0, DataType *const ptr=0, services::Status *stat=NULL)
Definition: matrix.h:145
daal::data_management::interface1::Matrix::create
static services::SharedPtr< Matrix< DataType > > create(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns, size_t nRows, DataType *const ptr, const DataType &constValue, services::Status *stat=NULL)
Definition: matrix.h:298
daal::data_management::interface1::DictionaryIface::FeaturesEqual
FeaturesEqual
Enumeration to specify whether the Data Dictionary contains equal features.
Definition: data_dictionary.h:171
daal::data_management::interface1::Matrix::create
static services::SharedPtr< Matrix< DataType > > create(size_t nColumns, size_t nRows, const services::SharedPtr< DataType > &ptr, const DataType &constValue, services::Status *stat=NULL)
Definition: matrix.h:271
daal::data_management::interface1::Matrix::create
static services::SharedPtr< Matrix< DataType > > create(size_t nColumns, size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag, const DataType &constValue, services::Status *stat=NULL)
Definition: matrix.h:353
daal::data_management::interface1::HomogenNumericTable
Class that provides methods to access data stored as a contiguous array of homogeneous feature vector...
Definition: homogen_numeric_table.h:76
daal::data_management::interface1::Matrix::Matrix
Matrix(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns, size_t nRows, const services::SharedPtr< DataType > &ptr)
Definition: matrix.h:159
daal::data_management::interface1::Matrix::create
static services::SharedPtr< Matrix< DataType > > create(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns, size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag, services::Status *stat=NULL)
Definition: matrix.h:220