25 #include "services/daal_memory.h"
26 #include "data_management/data/numeric_table.h"
27 #include "data_management/data/homogen_numeric_table.h"
28 #include "services/daal_shared_ptr.h"
29 #include "data_management/data/data_serialize.h"
33 namespace data_management
47 template<
typename DataType = DAAL_DATA_TYPE>
48 class DAAL_EXPORT Matrix :
public HomogenNumericTable<DataType>
51 DECLARE_SERIALIZABLE_TAG();
59 Matrix(
size_t nColumns = 0,
size_t nRows = 0, DataType *
const ptr = 0 ):
60 HomogenNumericTable<DataType>( services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows ) { }
70 static services::SharedPtr<Matrix<DataType> > create(
size_t nColumns = 0,
size_t nRows = 0, DataType *
const ptr = 0,
71 services::Status *stat = NULL)
73 return create(DictionaryIface::notEqual, nColumns, nRows, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), stat);
83 Matrix(
size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr):
84 HomogenNumericTable<DataType>( ptr, nColumns, nRows ) { }
94 static services::SharedPtr<Matrix<DataType> > create(
size_t nColumns,
size_t nRows, services::SharedPtr<DataType> &ptr,
95 services::Status *stat = NULL)
97 return create(DictionaryIface::notEqual, nColumns, nRows, ptr, stat);
107 Matrix( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns = 0,
size_t nRows = 0, DataType *
const ptr = 0 ):
108 HomogenNumericTable<DataType>( featuresEqual, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows ) { }
119 static services::SharedPtr<Matrix<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
120 size_t nColumns = 0,
size_t nRows = 0, DataType *
const ptr = 0,
121 services::Status *stat = NULL)
123 return create(featuresEqual, nColumns, nRows, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), stat);
133 Matrix( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr ):
134 HomogenNumericTable<DataType>( featuresEqual, ptr, nColumns, nRows ) { }
145 static services::SharedPtr<Matrix<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
146 size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr,
147 services::Status *stat = NULL)
149 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(Matrix, DataType, featuresEqual, nColumns, nRows, ptr);
158 Matrix(
size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag ):
159 HomogenNumericTable<DataType>( nColumns, nRows, memoryAllocationFlag ) { }
169 static services::SharedPtr<Matrix<DataType> > create(
size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag,
170 services::Status *stat = NULL)
172 return create(DictionaryIface::notEqual, nColumns, nRows, memoryAllocationFlag, stat);
182 Matrix( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag ):
183 HomogenNumericTable<DataType>( featuresEqual, nColumns, nRows, memoryAllocationFlag ) { }
194 static services::SharedPtr<Matrix<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
195 size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag,
196 services::Status *stat = NULL)
198 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(Matrix, DataType, featuresEqual, nColumns, nRows, memoryAllocationFlag);
208 Matrix(
size_t nColumns,
size_t nRows, DataType *
const ptr,
const DataType &constValue ):
209 HomogenNumericTable<DataType>( services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows, constValue ) { }
220 static services::SharedPtr<Matrix<DataType> > create(
size_t nColumns,
size_t nRows, DataType *
const ptr,
221 const DataType &constValue, services::Status *stat = NULL)
223 return create(DictionaryIface::notEqual, nColumns, nRows, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), constValue, stat);
233 Matrix(
size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr,
const DataType &constValue ):
234 HomogenNumericTable<DataType>( ptr, nColumns, nRows, constValue ) { }
245 static services::SharedPtr<Matrix<DataType> > create(
size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr,
246 const DataType &constValue, services::Status *stat = NULL)
248 return create(DictionaryIface::notEqual, nColumns, nRows, ptr, constValue, stat);
259 Matrix( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows, DataType *
const ptr,
const DataType &constValue ):
260 HomogenNumericTable<DataType>( featuresEqual, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows, constValue ) { }
272 static services::SharedPtr<Matrix<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
273 size_t nColumns,
size_t nRows, DataType *
const ptr,
274 const DataType &constValue, services::Status *stat = NULL)
276 return create(featuresEqual, nColumns, nRows, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), constValue, stat);
287 Matrix( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr,
const DataType &constValue ):
288 HomogenNumericTable<DataType>( featuresEqual, ptr, nColumns, nRows, constValue ) { }
300 static services::SharedPtr<Matrix<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
301 size_t nColumns,
size_t nRows,
const services::SharedPtr<DataType> &ptr,
302 const DataType &constValue, services::Status *stat = NULL)
304 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(Matrix, DataType, featuresEqual, nColumns, nRows, ptr, constValue);
314 Matrix(
size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag,
315 const DataType &constValue ):
316 HomogenNumericTable<DataType>( nColumns, nRows, memoryAllocationFlag, constValue ) { }
327 static services::SharedPtr<Matrix<DataType> > create(
size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag,
328 const DataType &constValue, services::Status *stat = NULL)
330 return create(DictionaryIface::notEqual, nColumns, nRows, memoryAllocationFlag, constValue, stat);
341 Matrix( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
342 NumericTable::AllocationFlag memoryAllocationFlag,
const DataType &constValue ):
343 HomogenNumericTable<DataType>( featuresEqual, nColumns, nRows, memoryAllocationFlag, constValue ) { }
355 static services::SharedPtr<Matrix<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
356 size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag,
357 const DataType &constValue, services::Status *stat = NULL)
359 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(Matrix, DataType, featuresEqual, nColumns, nRows, memoryAllocationFlag, constValue);
363 virtual ~Matrix() { }
367 Matrix(DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
368 const services::SharedPtr<DataType> &ptr, services::Status &st):
369 HomogenNumericTable<DataType>(featuresEqual, ptr, nColumns, nRows, st) { }
371 Matrix(DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
372 NumericTable::AllocationFlag memoryAllocationFlag, services::Status &st):
373 HomogenNumericTable<DataType>(featuresEqual, nColumns, nRows, memoryAllocationFlag, st) { }
375 Matrix(DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
376 const services::SharedPtr<DataType> &ptr,
const DataType &constValue,
377 services::Status &st):
378 HomogenNumericTable<DataType>(featuresEqual, ptr, nColumns, nRows, constValue, st) { }
380 Matrix(DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
381 NumericTable::AllocationFlag memoryAllocationFlag,
const DataType &constValue, services::Status &st):
382 HomogenNumericTable<DataType>(featuresEqual, nColumns, nRows, memoryAllocationFlag, constValue, st) { }
386 using interface1::Matrix;
daal::data_management::interface1::NumericTableIface::AllocationFlag
AllocationFlag
Enumeration to specify whether the Numeric Table must allocate memory.
Definition: numeric_table.h:283
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:341
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:70
daal
Definition: algorithm_base_common.h:31
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:259
daal::data_management::interface1::Matrix
Represents a two-dimensional table of numbers of the same type.
Definition: matrix.h:48
daal::data_management::interface1::Matrix::Matrix
Matrix(size_t nColumns, size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag)
Definition: matrix.h:158
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:94
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:287
daal::data_management::interface1::Matrix::Matrix
Matrix(size_t nColumns=0, size_t nRows=0, DataType *const ptr=0)
Definition: matrix.h:59
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:300
daal::data_management::interface1::Matrix::Matrix
Matrix(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns, size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag)
Definition: matrix.h:182
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:355
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:220
daal::data_management::interface1::Matrix::Matrix
Matrix(size_t nColumns, size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag, const DataType &constValue)
Definition: matrix.h:314
daal::data_management::interface1::Matrix::Matrix
Matrix(size_t nColumns, size_t nRows, const services::SharedPtr< DataType > &ptr, const DataType &constValue)
Definition: matrix.h:233
daal::data_management::interface1::Matrix::Matrix
Matrix(size_t nColumns, size_t nRows, const services::SharedPtr< DataType > &ptr)
Definition: matrix.h:83
daal::data_management::interface1::Matrix::Matrix
Matrix(size_t nColumns, size_t nRows, DataType *const ptr, const DataType &constValue)
Definition: matrix.h:208
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:169
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:145
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:107
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:119
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:272
daal::data_management::interface1::DictionaryIface::FeaturesEqual
FeaturesEqual
Enumeration to specify whether the Data Dictionary contains equal features.
Definition: data_dictionary.h:145
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:245
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:327
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:50
daal::data_management::interface1::Matrix::Matrix
Matrix(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns, size_t nRows, const services::SharedPtr< DataType > &ptr)
Definition: matrix.h:133
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:194