27 #include "services/daal_memory.h"
28 #include "data_management/data/numeric_table.h"
29 #include "data_management/data/homogen_numeric_table.h"
30 #include "services/daal_shared_ptr.h"
31 #include "data_management/data/data_serialize.h"
35 namespace data_management
49 template<
typename DataType = DAAL_DATA_TYPE>
50 class DAAL_EXPORT Matrix :
public HomogenNumericTable<DataType>
53 DECLARE_SERIALIZABLE_TAG();
61 Matrix(
size_t nColumns = 0,
size_t nRows = 0, DataType *
const ptr = 0 ):
62 HomogenNumericTable<DataType>( services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows ) { }
72 static services::SharedPtr<Matrix<DataType> > create(
size_t nColumns = 0,
size_t nRows = 0, DataType *
const ptr = 0,
73 services::Status *stat = NULL)
75 return create(DictionaryIface::notEqual, nColumns, nRows, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), stat);
85 Matrix(
size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr):
86 HomogenNumericTable<DataType>( ptr, nColumns, nRows ) { }
96 static services::SharedPtr<Matrix<DataType> > create(
size_t nColumns,
size_t nRows, services::SharedPtr<DataType> &ptr,
97 services::Status *stat = NULL)
99 return create(DictionaryIface::notEqual, nColumns, nRows, ptr, stat);
109 Matrix( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns = 0,
size_t nRows = 0, DataType *
const ptr = 0 ):
110 HomogenNumericTable<DataType>( featuresEqual, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows ) { }
121 static services::SharedPtr<Matrix<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
122 size_t nColumns = 0,
size_t nRows = 0, DataType *
const ptr = 0,
123 services::Status *stat = NULL)
125 return create(featuresEqual, nColumns, nRows, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), stat);
135 Matrix( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr ):
136 HomogenNumericTable<DataType>( featuresEqual, ptr, nColumns, nRows ) { }
147 static services::SharedPtr<Matrix<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
148 size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr,
149 services::Status *stat = NULL)
151 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(Matrix, DataType, featuresEqual, nColumns, nRows, ptr);
160 Matrix(
size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag ):
161 HomogenNumericTable<DataType>( nColumns, nRows, memoryAllocationFlag ) { }
171 static services::SharedPtr<Matrix<DataType> > create(
size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag,
172 services::Status *stat = NULL)
174 return create(DictionaryIface::notEqual, nColumns, nRows, memoryAllocationFlag, stat);
184 Matrix( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag ):
185 HomogenNumericTable<DataType>( featuresEqual, nColumns, nRows, memoryAllocationFlag ) { }
196 static services::SharedPtr<Matrix<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
197 size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag,
198 services::Status *stat = NULL)
200 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(Matrix, DataType, featuresEqual, nColumns, nRows, memoryAllocationFlag);
210 Matrix(
size_t nColumns,
size_t nRows, DataType *
const ptr,
const DataType &constValue ):
211 HomogenNumericTable<DataType>( services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows, constValue ) { }
222 static services::SharedPtr<Matrix<DataType> > create(
size_t nColumns,
size_t nRows, DataType *
const ptr,
223 const DataType &constValue, services::Status *stat = NULL)
225 return create(DictionaryIface::notEqual, nColumns, nRows, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), constValue, stat);
235 Matrix(
size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr,
const DataType &constValue ):
236 HomogenNumericTable<DataType>( ptr, nColumns, nRows, constValue ) { }
247 static services::SharedPtr<Matrix<DataType> > create(
size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr,
248 const DataType &constValue, services::Status *stat = NULL)
250 return create(DictionaryIface::notEqual, nColumns, nRows, ptr, constValue, stat);
261 Matrix( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows, DataType *
const ptr,
const DataType &constValue ):
262 HomogenNumericTable<DataType>( featuresEqual, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows, constValue ) { }
274 static services::SharedPtr<Matrix<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
275 size_t nColumns,
size_t nRows, DataType *
const ptr,
276 const DataType &constValue, services::Status *stat = NULL)
278 return create(featuresEqual, nColumns, nRows, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), constValue, stat);
289 Matrix( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr,
const DataType &constValue ):
290 HomogenNumericTable<DataType>( featuresEqual, ptr, nColumns, nRows, constValue ) { }
302 static services::SharedPtr<Matrix<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
303 size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr,
304 const DataType &constValue, services::Status *stat = NULL)
306 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(Matrix, DataType, featuresEqual, nColumns, nRows, ptr, constValue);
316 Matrix(
size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag,
317 const DataType &constValue ):
318 HomogenNumericTable<DataType>( nColumns, nRows, memoryAllocationFlag, constValue ) { }
329 static services::SharedPtr<Matrix<DataType> > create(
size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag,
330 const DataType &constValue, services::Status *stat = NULL)
332 return create(DictionaryIface::notEqual, nColumns, nRows, memoryAllocationFlag, constValue, stat);
343 Matrix( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
344 NumericTable::AllocationFlag memoryAllocationFlag,
const DataType &constValue ):
345 HomogenNumericTable<DataType>( featuresEqual, nColumns, nRows, memoryAllocationFlag, constValue ) { }
357 static services::SharedPtr<Matrix<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
358 size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag,
359 const DataType &constValue, services::Status *stat = NULL)
361 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(Matrix, DataType, featuresEqual, nColumns, nRows, memoryAllocationFlag, constValue);
365 virtual ~Matrix() { }
369 Matrix(DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
370 const services::SharedPtr<DataType> &ptr, services::Status &st):
371 HomogenNumericTable<DataType>(featuresEqual, ptr, nColumns, nRows, st) { }
373 Matrix(DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
374 NumericTable::AllocationFlag memoryAllocationFlag, services::Status &st):
375 HomogenNumericTable<DataType>(featuresEqual, nColumns, nRows, memoryAllocationFlag, st) { }
377 Matrix(DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
378 const services::SharedPtr<DataType> &ptr,
const DataType &constValue,
379 services::Status &st):
380 HomogenNumericTable<DataType>(featuresEqual, ptr, nColumns, nRows, constValue, st) { }
382 Matrix(DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
383 NumericTable::AllocationFlag memoryAllocationFlag,
const DataType &constValue, services::Status &st):
384 HomogenNumericTable<DataType>(featuresEqual, nColumns, nRows, memoryAllocationFlag, constValue, st) { }
388 using interface1::Matrix;
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:121
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:357
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:343
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:171
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:147
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:96
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:289
daal::data_management::interface1::Matrix::Matrix
Matrix(size_t nColumns, size_t nRows, const services::SharedPtr< DataType > &ptr, const DataType &constValue)
Definition: matrix.h:235
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:274
daal::data_management::interface1::Matrix::Matrix
Matrix(size_t nColumns, size_t nRows, DataType *const ptr, const DataType &constValue)
Definition: matrix.h:210
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:72
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:247
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:109
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:54
daal::data_management::interface1::NumericTableIface::AllocationFlag
AllocationFlag
Enumeration to specify whether the Numeric Table must allocate memory.
Definition: numeric_table.h:285
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:302
daal::data_management::interface1::Matrix::Matrix
Matrix(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns, size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag)
Definition: matrix.h:184
daal::data_management::interface1::Matrix::Matrix
Matrix(size_t nColumns, size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag)
Definition: matrix.h:160
daal::data_management::interface1::Matrix::Matrix
Matrix(size_t nColumns=0, size_t nRows=0, DataType *const ptr=0)
Definition: matrix.h:61
daal::data_management::interface1::Matrix::Matrix
Matrix(size_t nColumns, size_t nRows, const services::SharedPtr< DataType > &ptr)
Definition: matrix.h:85
daal::data_management::interface1::Matrix::Matrix
Matrix(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns, size_t nRows, const services::SharedPtr< DataType > &ptr)
Definition: matrix.h:135
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:196
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:329
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:261
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:222
daal::data_management::interface1::Matrix::Matrix
Matrix(size_t nColumns, size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag, const DataType &constValue)
Definition: matrix.h:316
daal::data_management::interface1::Matrix
Represents a two-dimensional table of numbers of the same type.
Definition: matrix.h:50