49 #ifndef __HOMOGEN_NUMERIC_TABLE_H__
50 #define __HOMOGEN_NUMERIC_TABLE_H__
52 #include "data_management/data/numeric_table.h"
53 #include "services/daal_memory.h"
54 #include "services/daal_defines.h"
55 #include "data_management/data/data_serialize.h"
59 namespace data_management
75 template<
typename DataType = DAAL_DATA_TYPE>
76 class DAAL_EXPORT HomogenNumericTable :
public NumericTable
79 DECLARE_SERIALIZABLE_TAG();
80 DECLARE_SERIALIZABLE_IMPL();
82 DAAL_CAST_OPERATOR(HomogenNumericTable)
86 typedef DataType baseDataType;
94 DAAL_DEPRECATED HomogenNumericTable( NumericTableDictionary *ddict ):
105 HomogenNumericTable( NumericTableDictionaryPtr ddictForHomogenNumericTable ):
106 NumericTable(ddictForHomogenNumericTable)
117 static services::SharedPtr<HomogenNumericTable<DataType> > create(NumericTableDictionaryPtr ddictForHomogenNumericTable, services::Status *stat = NULL)
119 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(HomogenNumericTable, DataType, ddictForHomogenNumericTable);
126 HomogenNumericTable():
135 static services::SharedPtr<HomogenNumericTable<DataType> > create(services::Status *stat = NULL)
137 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL(HomogenNumericTable, DataType);
147 HomogenNumericTable( DataType *
const ptr,
size_t nColumns = 0,
size_t nRows = 0 ):
148 NumericTable( nColumns, nRows )
151 this->_status |= setArray( ptr, nRows );
153 NumericTableFeature df;
154 df.setType<DataType>();
155 this->_status |= _ddict->setAllFeatures(df);
166 static services::SharedPtr<HomogenNumericTable<DataType> > create(DataType *
const ptr,
167 size_t nColumns = 0,
size_t nRows = 0,
168 services::Status *stat = NULL)
170 return create(services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows, stat);
180 HomogenNumericTable(
const services::SharedPtr<DataType> &ptr,
size_t nColumns,
size_t nRows ):
181 NumericTable( nColumns, nRows )
184 this->_status |= setArray( ptr, nRows );
186 NumericTableFeature df;
187 df.setType<DataType>();
188 this->_status |= _ddict->setAllFeatures(df);
199 static services::SharedPtr<HomogenNumericTable<DataType> > create(
const services::SharedPtr<DataType> &ptr,
200 size_t nColumns,
size_t nRows,
201 services::Status *stat = NULL)
203 return create(DictionaryIface::notEqual, ptr, nColumns, nRows, stat);
214 HomogenNumericTable( DictionaryIface::FeaturesEqual featuresEqual, DataType *
const ptr = 0,
size_t nColumns = 0,
size_t nRows = 0):
215 NumericTable( nColumns, nRows, featuresEqual )
218 this->_status |= setArray( ptr, nRows );
220 NumericTableFeature df;
221 df.setType<DataType>();
222 this->_status |= _ddict->setAllFeatures(df);
234 static services::SharedPtr<HomogenNumericTable<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
235 DataType *
const ptr = 0,
size_t nColumns = 0,
size_t nRows = 0,
236 services::Status *stat = NULL)
238 return create(featuresEqual, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows, stat);
249 HomogenNumericTable( DictionaryIface::FeaturesEqual featuresEqual,
const services::SharedPtr<DataType> &ptr,
size_t nColumns,
size_t nRows ):
250 NumericTable( nColumns, nRows, featuresEqual )
253 this->_status |= setArray( ptr, nRows );
255 NumericTableFeature df;
256 df.setType<DataType>();
257 this->_status |= _ddict->setAllFeatures(df);
269 static services::SharedPtr<HomogenNumericTable<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
270 const services::SharedPtr<DataType> &ptr,
271 size_t nColumns,
size_t nRows, services::Status *stat = NULL)
273 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(HomogenNumericTable, DataType, featuresEqual, ptr, nColumns, nRows);
284 HomogenNumericTable( DataType *
const ptr,
size_t nColumns,
size_t nRows,
const DataType &constValue ):
285 NumericTable( nColumns, nRows )
288 this->_status |= setArray( ptr, nRows );
290 NumericTableFeature df;
291 df.setType<DataType>();
292 this->_status |= _ddict->setAllFeatures(df);
293 this->_status |= assign<DataType>(constValue);
305 static services::SharedPtr<HomogenNumericTable<DataType> > create(DataType *
const ptr,
size_t nColumns,
size_t nRows,
const DataType &constValue,
306 services::Status *stat = NULL)
308 return create(services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows, constValue, stat);
319 HomogenNumericTable(
const services::SharedPtr<DataType> &ptr,
size_t nColumns,
size_t nRows,
const DataType &constValue ):
320 NumericTable( nColumns, nRows )
323 this->_status |= setArray( ptr, nRows );
325 NumericTableFeature df;
326 df.setType<DataType>();
327 this->_status |= _ddict->setAllFeatures(df);
328 this->_status |= assign<DataType>(constValue);
340 static services::SharedPtr<HomogenNumericTable<DataType> > create(
const services::SharedPtr<DataType> &ptr,
size_t nColumns,
size_t nRows,
341 const DataType &constValue, services::Status *stat = NULL)
343 return create(DictionaryIface::notEqual, ptr, nColumns, nRows, constValue, stat);
355 HomogenNumericTable( DictionaryIface::FeaturesEqual featuresEqual, DataType *
const ptr,
size_t nColumns,
size_t nRows,
const DataType &constValue ):
356 NumericTable( nColumns, nRows, featuresEqual )
359 this->_status |= setArray( ptr, nRows );
361 NumericTableFeature df;
362 df.setType<DataType>();
363 this->_status |= _ddict->setAllFeatures(df);
364 this->_status |= assign<DataType>(constValue);
377 static services::SharedPtr<HomogenNumericTable<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual, DataType *
const ptr,
378 size_t nColumns,
size_t nRows,
const DataType &constValue,
379 services::Status *stat = NULL)
381 return create(featuresEqual, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows, constValue, stat);
393 HomogenNumericTable( DictionaryIface::FeaturesEqual featuresEqual,
const services::SharedPtr<DataType> &ptr,
size_t nColumns,
size_t nRows,
const DataType &constValue ):
394 NumericTable( nColumns, nRows, featuresEqual )
397 this->_status |= setArray( ptr, nRows );
399 NumericTableFeature df;
400 df.setType<DataType>();
401 this->_status |= _ddict->setAllFeatures(df);
402 this->_status |= assign<DataType>(constValue);
415 static services::SharedPtr<HomogenNumericTable<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
416 const services::SharedPtr<DataType> &ptr,
417 size_t nColumns,
size_t nRows,
const DataType &constValue,
418 services::Status *stat = NULL)
420 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(HomogenNumericTable, DataType, featuresEqual, ptr, nColumns, nRows, constValue);
430 HomogenNumericTable(
size_t nColumns,
size_t nRows, AllocationFlag memoryAllocationFlag ):
431 NumericTable( nColumns, nRows )
435 NumericTableFeature df;
436 df.setType<DataType>();
437 this->_status |= _ddict->setAllFeatures(df);
439 if( memoryAllocationFlag == doAllocate ) this->_status |= allocateDataMemoryImpl();
450 static services::SharedPtr<HomogenNumericTable<DataType> > create(
size_t nColumns,
size_t nRows, AllocationFlag memoryAllocationFlag,
451 services::Status *stat = NULL)
453 return create(DictionaryIface::notEqual, nColumns, nRows, memoryAllocationFlag, stat);
464 HomogenNumericTable( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows, AllocationFlag memoryAllocationFlag ):
465 NumericTable( nColumns, nRows, featuresEqual )
469 NumericTableFeature df;
470 df.setType<DataType>();
471 this->_status |= _ddict->setAllFeatures(df);
473 if( memoryAllocationFlag == doAllocate ) this->_status |= allocateDataMemoryImpl();
485 static services::SharedPtr<HomogenNumericTable<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
486 size_t nColumns,
size_t nRows, AllocationFlag memoryAllocationFlag,
487 services::Status *stat = NULL)
489 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(HomogenNumericTable, DataType, featuresEqual, nColumns, nRows, memoryAllocationFlag);
500 HomogenNumericTable(
size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag,
501 const DataType &constValue ):
502 NumericTable( nColumns, nRows )
506 NumericTableFeature df;
507 df.setType<DataType>();
509 this->_status |= _ddict->setAllFeatures(df);
511 if( memoryAllocationFlag == doAllocate ) this->_status |= allocateDataMemoryImpl();
513 this->_status |= assign<DataType>(constValue);
525 static services::SharedPtr<HomogenNumericTable<DataType> > create(
size_t nColumns,
size_t nRows, AllocationFlag memoryAllocationFlag,
526 const DataType &constValue, services::Status *stat = NULL)
528 return create(DictionaryIface::notEqual, nColumns, nRows, memoryAllocationFlag, constValue, stat);
540 HomogenNumericTable( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag,
541 const DataType &constValue ):
542 NumericTable( nColumns, nRows, featuresEqual )
546 NumericTableFeature df;
547 df.setType<DataType>();
549 this->_status |= _ddict->setAllFeatures(df);
551 if( memoryAllocationFlag == doAllocate ) { this->_status |= allocateDataMemoryImpl(); }
553 this->_status |= assign<DataType>(constValue);
566 static services::SharedPtr<HomogenNumericTable<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
567 size_t nColumns,
size_t nRows, AllocationFlag memoryAllocationFlag,
568 const DataType &constValue, services::Status *stat = NULL)
570 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(HomogenNumericTable, DataType, featuresEqual, nColumns, nRows, memoryAllocationFlag, constValue);
573 virtual ~HomogenNumericTable()
575 freeDataMemoryImpl();
582 DataType *getArray()
const
584 return (DataType*)_ptr.get();
591 services::SharedPtr<DataType> getArraySharedPtr()
const
593 return services::reinterpretPointerCast<DataType, byte>(_ptr);
601 DAAL_DEPRECATED services::Status setArray( DataType *
const ptr )
603 freeDataMemoryImpl();
605 _ptr = services::SharedPtr<byte>((byte*)ptr, services::EmptyDeleter());
609 _memStatus = userAllocated;
613 _memStatus = notAllocated;
615 return services::Status();
623 DAAL_DEPRECATED services::Status setArray(
const services::SharedPtr<DataType> &ptr )
625 freeDataMemoryImpl();
627 _ptr = services::reinterpretPointerCast<byte, DataType>(ptr);
631 _memStatus = userAllocated;
635 _memStatus = notAllocated;
637 return services::Status();
645 services::Status setArray( DataType *
const ptr,
size_t nRows )
647 freeDataMemoryImpl();
649 _ptr = services::SharedPtr<byte>((byte*)ptr, services::EmptyDeleter());
654 _memStatus = userAllocated;
658 _memStatus = notAllocated;
660 return services::Status();
668 services::Status setArray( services::SharedPtr<DataType> ptr,
size_t nRows )
670 freeDataMemoryImpl();
672 _ptr = services::reinterpretPointerCast<byte, DataType>(ptr);
677 _memStatus = userAllocated;
681 _memStatus = notAllocated;
683 return services::Status();
690 template <
typename T>
691 services::Status assign(T value)
693 if( _memStatus == notAllocated )
694 return services::Status(services::ErrorEmptyHomogenNumericTable);
696 size_t nColumns = getNumberOfColumns();
697 size_t nRows = getNumberOfRows();
700 DataType *ptr = (DataType*)_ptr.get();
701 DataType valueDataType = (DataType)value;
702 for( i = 0; i < nColumns * nRows; i++ )
704 ptr[i] = valueDataType;
706 return services::Status();
714 DataType *operator[](
size_t i)
716 size_t nColumns = getNumberOfColumns();
717 return (DataType*)_ptr.get() + i * nColumns;
723 virtual services::Status assign(
float value) DAAL_C11_OVERRIDE {
return assign<DataType>((DataType)value);}
728 virtual services::Status assign(
double value) DAAL_C11_OVERRIDE {
return assign<DataType>((DataType)value);}
733 virtual services::Status assign(
int value) DAAL_C11_OVERRIDE {
return assign<DataType>((DataType)value);}
735 services::Status getBlockOfRows(
size_t vector_idx,
size_t vector_num, ReadWriteMode rwflag, BlockDescriptor<double> &block) DAAL_C11_OVERRIDE
737 return getTBlock<double>(vector_idx, vector_num, rwflag, block);
739 services::Status getBlockOfRows(
size_t vector_idx,
size_t vector_num, ReadWriteMode rwflag, BlockDescriptor<float> &block) DAAL_C11_OVERRIDE
741 return getTBlock<float>(vector_idx, vector_num, rwflag, block);
743 services::Status getBlockOfRows(
size_t vector_idx,
size_t vector_num, ReadWriteMode rwflag, BlockDescriptor<int> &block) DAAL_C11_OVERRIDE
745 return getTBlock<int>(vector_idx, vector_num, rwflag, block);
748 services::Status releaseBlockOfRows(BlockDescriptor<double> &block) DAAL_C11_OVERRIDE
750 return releaseTBlock<double>(block);
752 services::Status releaseBlockOfRows(BlockDescriptor<float> &block) DAAL_C11_OVERRIDE
754 return releaseTBlock<float>(block);
756 services::Status releaseBlockOfRows(BlockDescriptor<int> &block) DAAL_C11_OVERRIDE
758 return releaseTBlock<int>(block);
761 services::Status getBlockOfColumnValues(
size_t feature_idx,
size_t vector_idx,
size_t value_num,
762 ReadWriteMode rwflag, BlockDescriptor<double> &block) DAAL_C11_OVERRIDE
764 return getTFeature<double>(feature_idx, vector_idx, value_num, rwflag, block);
766 services::Status getBlockOfColumnValues(
size_t feature_idx,
size_t vector_idx,
size_t value_num,
767 ReadWriteMode rwflag, BlockDescriptor<float> &block) DAAL_C11_OVERRIDE
769 return getTFeature<float>(feature_idx, vector_idx, value_num, rwflag, block);
771 services::Status getBlockOfColumnValues(
size_t feature_idx,
size_t vector_idx,
size_t value_num,
772 ReadWriteMode rwflag, BlockDescriptor<int> &block) DAAL_C11_OVERRIDE
774 return getTFeature<int>(feature_idx, vector_idx, value_num, rwflag, block);
777 services::Status releaseBlockOfColumnValues(BlockDescriptor<double> &block) DAAL_C11_OVERRIDE
779 return releaseTFeature<double>(block);
781 services::Status releaseBlockOfColumnValues(BlockDescriptor<float> &block) DAAL_C11_OVERRIDE
783 return releaseTFeature<float>(block);
785 services::Status releaseBlockOfColumnValues(BlockDescriptor<int> &block) DAAL_C11_OVERRIDE
787 return releaseTFeature<int>(block);
791 services::SharedPtr<byte> _ptr;
793 HomogenNumericTable(services::Status &st):
794 NumericTable(0, 0, DictionaryIface::notEqual, st)
797 HomogenNumericTable(NumericTableDictionaryPtr ddictForHomogenNumericTable, services::Status &st):
798 NumericTable(ddictForHomogenNumericTable, st)
803 HomogenNumericTable(DictionaryIface::FeaturesEqual featuresEqual,
const services::SharedPtr<DataType> &ptr,
804 size_t nColumns,
size_t nRows, services::Status &st):
805 NumericTable(nColumns, nRows, featuresEqual, st)
808 st |= setArray( ptr, nRows );
810 NumericTableFeature df;
811 df.setType<DataType>();
812 st |= _ddict->setAllFeatures(df);
815 HomogenNumericTable(DictionaryIface::FeaturesEqual featuresEqual,
const services::SharedPtr<DataType> &ptr,
816 size_t nColumns,
size_t nRows,
const DataType &constValue, services::Status &st):
817 NumericTable(nColumns, nRows, featuresEqual, st)
820 st |= setArray( ptr, nRows );
822 NumericTableFeature df;
823 df.setType<DataType>();
824 st |= _ddict->setAllFeatures(df);
825 st |= assign<DataType>(constValue);
828 HomogenNumericTable(DictionaryIface::FeaturesEqual featuresEqual,
829 size_t nColumns,
size_t nRows, AllocationFlag memoryAllocationFlag, services::Status &st):
830 NumericTable(nColumns, nRows, featuresEqual, st)
834 NumericTableFeature df;
835 df.setType<DataType>();
836 st |= _ddict->setAllFeatures(df);
838 if( memoryAllocationFlag == doAllocate ) st |= allocateDataMemoryImpl();
841 HomogenNumericTable(DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
842 NumericTable::AllocationFlag memoryAllocationFlag,
843 const DataType &constValue, services::Status &st):
844 NumericTable(nColumns, nRows, featuresEqual, st)
848 NumericTableFeature df;
849 df.setType<DataType>();
851 st |= _ddict->setAllFeatures(df);
853 if( memoryAllocationFlag == doAllocate ) { st |= allocateDataMemoryImpl(); }
855 st |= assign<DataType>(constValue);
858 services::Status allocateDataMemoryImpl(daal::MemType type = daal::dram) DAAL_C11_OVERRIDE
860 freeDataMemoryImpl();
862 size_t size = getNumberOfColumns() * getNumberOfRows();
866 return services::Status(getNumberOfColumns() == 0 ? services::ErrorIncorrectNumberOfFeatures :
867 services::ErrorIncorrectNumberOfObservations);
870 _ptr = services::SharedPtr<byte>((byte *)daal::services::daal_malloc(size *
sizeof(DataType)), services::ServiceDeleter());
873 return services::Status(services::ErrorMemoryAllocationFailed);
875 _memStatus = internallyAllocated;
876 return services::Status();
879 void freeDataMemoryImpl() DAAL_C11_OVERRIDE
881 _ptr = services::SharedPtr<byte>();
882 _memStatus = notAllocated;
885 template<
typename Archive,
bool onDeserialize>
886 services::Status serialImpl( Archive *archive )
888 NumericTable::serialImpl<Archive, onDeserialize>( archive );
892 allocateDataMemoryImpl();
895 size_t size = getNumberOfColumns() * getNumberOfRows();
897 archive->set( (DataType*)_ptr.get(), size );
899 return services::Status();
903 byte *internal_getBlockOfRows(
size_t idx )
905 size_t _featnum = _ddict->getNumberOfFeatures();
906 return _ptr.get() + _featnum * idx *
sizeof(DataType);
909 byte *internal_getBlockOfRows(
size_t idx,
size_t feat_idx )
911 size_t _featnum = _ddict->getNumberOfFeatures();
912 return _ptr.get() + _featnum * idx *
sizeof(DataType) + feat_idx *
sizeof(DataType);
917 template <
typename T>
918 services::Status getTBlock(
size_t idx,
size_t nrows,
int rwFlag, BlockDescriptor<T> &block )
920 size_t ncols = getNumberOfColumns();
921 size_t nobs = getNumberOfRows();
922 block.setDetails( 0, idx, rwFlag );
926 block.resizeBuffer( ncols, 0 );
927 return services::Status();
930 nrows = ( idx + nrows < nobs ) ? nrows : nobs - idx;
932 if( IsSameType<T, DataType>::value )
934 block.setPtr(&_ptr, internal_getBlockOfRows(idx) , ncols, nrows );
938 if( !block.resizeBuffer( ncols, nrows ) )
939 return services::Status(services::ErrorMemoryAllocationFailed);
941 if( rwFlag & (
int)readOnly )
943 byte *location = internal_getBlockOfRows(idx);
945 for(
size_t i = 0; i < nrows; i++)
947 data_feature_utils::getVectorUpCast(data_feature_utils::getIndexNumType<DataType>(), data_feature_utils::getInternalNumType<T>())
948 ( ncols, ((DataType*)location) + i * ncols, ((T*)block.getBlockPtr()) + i * ncols );
952 return services::Status();
955 template <
typename T>
956 services::Status releaseTBlock( BlockDescriptor<T> &block )
958 if(block.getRWFlag() & (int)writeOnly)
960 byte *location = internal_getBlockOfRows( block.getRowsOffset() );
961 size_t ncols = getNumberOfColumns();
962 size_t nrows = block.getNumberOfRows();
964 if( IsSameType<T, DataType>::value )
966 if( (T*)block.getBlockPtr() != (T *)location )
968 daal::services::daal_memcpy_s(location, nrows * ncols *
sizeof(T), block.getBlockPtr(), nrows * ncols *
sizeof(T));
973 for(
size_t i = 0; i < nrows; i++)
975 data_feature_utils::getVectorDownCast(data_feature_utils::getIndexNumType<DataType>(), data_feature_utils::getInternalNumType<T>())
976 ( ncols, ((T*)block.getBlockPtr()) + i * ncols, ((DataType*)location) + i * ncols );
981 return services::Status();
984 template <typename T>
985 services::Status getTFeature(
size_t feat_idx,
size_t idx,
size_t nrows,
int rwFlag, BlockDescriptor<T> &block)
987 size_t ncols = getNumberOfColumns();
988 size_t nobs = getNumberOfRows();
989 block.setDetails( feat_idx, idx, rwFlag );
993 block.resizeBuffer( 1, 0 );
994 return services::Status();
997 nrows = ( idx + nrows < nobs ) ? nrows : nobs - idx;
999 if( ( IsSameType<T, DataType>::value ) && (ncols == 1) )
1001 block.setPtr(&_ptr, internal_getBlockOfRows(idx) , ncols, nrows );
1005 if( !block.resizeBuffer( 1, nrows ) )
1006 return services::Status(services::ErrorMemoryAllocationFailed);
1008 if( rwFlag & (
int)readOnly )
1010 DataType *location = (DataType *)internal_getBlockOfRows(idx, feat_idx);
1011 T *buffer = block.getBlockPtr();
1012 data_feature_utils::getVectorStrideUpCast(data_feature_utils::getIndexNumType<DataType>(), data_feature_utils::getInternalNumType<T>())
1013 ( nrows, location,
sizeof(DataType)*ncols, buffer,
sizeof(T) );
1016 return services::Status();
1019 template <
typename T>
1020 services::Status releaseTFeature( BlockDescriptor<T> &block )
1022 if (block.getRWFlag() & (int)writeOnly)
1024 size_t ncols = getNumberOfColumns();
1025 DataType *location = (DataType *)internal_getBlockOfRows(block.getRowsOffset(), block.getColumnsOffset());
1026 data_feature_utils::getVectorStrideDownCast(data_feature_utils::getIndexNumType<DataType>(), data_feature_utils::getInternalNumType<T>())
1027 ( block.getNumberOfRows(), block.getBlockPtr(),
sizeof(T), location, ncols *
sizeof(DataType) );
1030 return services::Status();
1033 services::Status setNumberOfColumnsImpl(
size_t ncol) DAAL_C11_OVERRIDE
1035 if( _ddict->getNumberOfFeatures() != ncol )
1037 _ddict->resetDictionary();
1038 _ddict->setNumberOfFeatures(ncol);
1040 NumericTableFeature df;
1041 df.setType<DataType>();
1042 _ddict->setAllFeatures(df);
1044 return services::Status();
1050 using interface1::HomogenNumericTable;
daal::data_management::interface1::HomogenNumericTable::create
static services::SharedPtr< HomogenNumericTable< DataType > > create(size_t nColumns, size_t nRows, AllocationFlag memoryAllocationFlag, const DataType &constValue, services::Status *stat=NULL)
Definition: homogen_numeric_table.h:525
daal::data_management::interface1::NumericTableIface::AllocationFlag
AllocationFlag
Enumeration to specify whether the Numeric Table must allocate memory.
Definition: numeric_table.h:309
daal
Definition: algorithm_base_common.h:57
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(DictionaryIface::FeaturesEqual featuresEqual, DataType *const ptr=0, size_t nColumns=0, size_t nRows=0)
Definition: homogen_numeric_table.h:214
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(DataType *const ptr, size_t nColumns=0, size_t nRows=0)
Definition: homogen_numeric_table.h:147
daal::data_management::interface1::HomogenNumericTable::baseDataType
DataType baseDataType
Definition: homogen_numeric_table.h:86
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(const services::SharedPtr< DataType > &ptr, size_t nColumns, size_t nRows)
Definition: homogen_numeric_table.h:180
daal::data_management::interface1::HomogenNumericTable::setArray
DAAL_DEPRECATED services::Status setArray(const services::SharedPtr< DataType > &ptr)
Definition: homogen_numeric_table.h:623
daal::data_management::interface1::HomogenNumericTable::releaseBlockOfColumnValues
services::Status releaseBlockOfColumnValues(BlockDescriptor< int > &block) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:785
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(DictionaryIface::FeaturesEqual featuresEqual, const services::SharedPtr< DataType > &ptr, size_t nColumns, size_t nRows)
Definition: homogen_numeric_table.h:249
daal::data_management::interface1::HomogenNumericTable::assign
services::Status assign(T value)
Definition: homogen_numeric_table.h:691
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(DictionaryIface::FeaturesEqual featuresEqual, const services::SharedPtr< DataType > &ptr, size_t nColumns, size_t nRows, const DataType &constValue)
Definition: homogen_numeric_table.h:393
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(DictionaryIface::FeaturesEqual featuresEqual, DataType *const ptr, size_t nColumns, size_t nRows, const DataType &constValue)
Definition: homogen_numeric_table.h:355
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns, size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag, const DataType &constValue)
Definition: homogen_numeric_table.h:540
daal::data_management::interface1::HomogenNumericTable::setArray
services::Status setArray(services::SharedPtr< DataType > ptr, size_t nRows)
Definition: homogen_numeric_table.h:668
daal::services::ErrorMemoryAllocationFailed
Definition: error_indexes.h:170
daal::dram
Definition: daal_defines.h:158
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns, size_t nRows, AllocationFlag memoryAllocationFlag)
Definition: homogen_numeric_table.h:464
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(size_t nColumns, size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag, const DataType &constValue)
Definition: homogen_numeric_table.h:500
daal::data_management::interface1::HomogenNumericTable::assign
virtual services::Status assign(double value) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:728
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(const services::SharedPtr< DataType > &ptr, size_t nColumns, size_t nRows, const DataType &constValue)
Definition: homogen_numeric_table.h:319
daal::data_management::interface1::HomogenNumericTable::create
static services::SharedPtr< HomogenNumericTable< DataType > > create(DictionaryIface::FeaturesEqual featuresEqual, DataType *const ptr, size_t nColumns, size_t nRows, const DataType &constValue, services::Status *stat=NULL)
Definition: homogen_numeric_table.h:377
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable()
Definition: homogen_numeric_table.h:126
daal::data_management::interface1::HomogenNumericTable::getBlockOfRows
services::Status getBlockOfRows(size_t vector_idx, size_t vector_num, ReadWriteMode rwflag, BlockDescriptor< float > &block) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:739
daal::services::ErrorIncorrectNumberOfFeatures
Definition: error_indexes.h:96
daal::algorithms::multivariate_outlier_detection::location
Definition: outlier_detection_multivariate_types.h:98
daal::data_management::interface1::HomogenNumericTable::create
static services::SharedPtr< HomogenNumericTable< DataType > > create(DictionaryIface::FeaturesEqual featuresEqual, const services::SharedPtr< DataType > &ptr, size_t nColumns, size_t nRows, const DataType &constValue, services::Status *stat=NULL)
Definition: homogen_numeric_table.h:415
daal::services::daal_memcpy_s
DAAL_EXPORT void daal_memcpy_s(void *dest, size_t numberOfElements, const void *src, size_t count)
daal::data_management::interface1::HomogenNumericTable::create
static services::SharedPtr< HomogenNumericTable< DataType > > create(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns, size_t nRows, AllocationFlag memoryAllocationFlag, const DataType &constValue, services::Status *stat=NULL)
Definition: homogen_numeric_table.h:566
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(DataType *const ptr, size_t nColumns, size_t nRows, const DataType &constValue)
Definition: homogen_numeric_table.h:284
daal::data_management::interface1::HomogenNumericTable::create
static services::SharedPtr< HomogenNumericTable< DataType > > create(DataType *const ptr, size_t nColumns=0, size_t nRows=0, services::Status *stat=NULL)
Definition: homogen_numeric_table.h:166
daal::data_management::interface1::HomogenNumericTable::releaseBlockOfColumnValues
services::Status releaseBlockOfColumnValues(BlockDescriptor< float > &block) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:781
daal::services::daal_malloc
DAAL_EXPORT void * daal_malloc(size_t size, size_t alignment=DAAL_MALLOC_DEFAULT_ALIGNMENT)
daal::data_management::interface1::HomogenNumericTable::getBlockOfRows
services::Status getBlockOfRows(size_t vector_idx, size_t vector_num, ReadWriteMode rwflag, BlockDescriptor< int > &block) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:743
daal::data_management::interface1::HomogenNumericTable::create
static services::SharedPtr< HomogenNumericTable< DataType > > create(NumericTableDictionaryPtr ddictForHomogenNumericTable, services::Status *stat=NULL)
Definition: homogen_numeric_table.h:117
daal::data_management::interface1::NumericTable
Class for a data management component responsible for representation of data in the numeric format...
Definition: numeric_table.h:600
daal::data_management::interface1::HomogenNumericTable::create
static services::SharedPtr< HomogenNumericTable< DataType > > create(const services::SharedPtr< DataType > &ptr, size_t nColumns, size_t nRows, services::Status *stat=NULL)
Definition: homogen_numeric_table.h:199
daal::data_management::interface1::HomogenNumericTable::getArray
DataType * getArray() const
Definition: homogen_numeric_table.h:582
daal::data_management::interface1::HomogenNumericTable::operator[]
DataType * operator[](size_t i)
Definition: homogen_numeric_table.h:714
daal::data_management::interface1::HomogenNumericTable::setArray
DAAL_DEPRECATED services::Status setArray(DataType *const ptr)
Definition: homogen_numeric_table.h:601
daal::data_management::interface1::HomogenNumericTable::assign
virtual services::Status assign(float value) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:723
daal::data_management::interface1::HomogenNumericTable::create
static services::SharedPtr< HomogenNumericTable< DataType > > create(DictionaryIface::FeaturesEqual featuresEqual, DataType *const ptr=0, size_t nColumns=0, size_t nRows=0, services::Status *stat=NULL)
Definition: homogen_numeric_table.h:234
daal::data_management::interface1::HomogenNumericTable::getBlockOfColumnValues
services::Status getBlockOfColumnValues(size_t feature_idx, size_t vector_idx, size_t value_num, ReadWriteMode rwflag, BlockDescriptor< int > &block) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:771
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(size_t nColumns, size_t nRows, AllocationFlag memoryAllocationFlag)
Definition: homogen_numeric_table.h:430
daal::data_management::interface1::HomogenNumericTable::releaseBlockOfRows
services::Status releaseBlockOfRows(BlockDescriptor< float > &block) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:752
daal::data_management::interface1::HomogenNumericTable::getArraySharedPtr
services::SharedPtr< DataType > getArraySharedPtr() const
Definition: homogen_numeric_table.h:591
daal::data_management::interface1::BlockDescriptor
Base class that manages buffer memory for read/write operations required by numeric tables...
Definition: numeric_table.h:81
daal::data_management::interface1::DictionaryIface::FeaturesEqual
FeaturesEqual
Enumeration to specify whether the Data Dictionary contains equal features.
Definition: data_dictionary.h:171
daal::algorithms::math::abs::value
Definition: abs_types.h:112
daal::data_management::interface1::HomogenNumericTable::create
static services::SharedPtr< HomogenNumericTable< DataType > > create(const services::SharedPtr< DataType > &ptr, size_t nColumns, size_t nRows, const DataType &constValue, services::Status *stat=NULL)
Definition: homogen_numeric_table.h:340
daal::data_management::interface1::NumericTableFeature::setType
void setType()
Definition: data_dictionary.h:117
daal::data_management::interface1::HomogenNumericTable::assign
virtual services::Status assign(int value) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:733
daal::services::ErrorIncorrectNumberOfObservations
Definition: error_indexes.h:97
daal::data_management::interface1::HomogenNumericTable::create
static services::SharedPtr< HomogenNumericTable< DataType > > create(DataType *const ptr, size_t nColumns, size_t nRows, const DataType &constValue, services::Status *stat=NULL)
Definition: homogen_numeric_table.h:305
daal::data_management::interface1::HomogenNumericTable::releaseBlockOfRows
services::Status releaseBlockOfRows(BlockDescriptor< double > &block) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:748
daal::data_management::interface1::HomogenNumericTable::create
static services::SharedPtr< HomogenNumericTable< DataType > > create(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns, size_t nRows, AllocationFlag memoryAllocationFlag, services::Status *stat=NULL)
Definition: homogen_numeric_table.h:485
daal::data_management::interface1::HomogenNumericTable::getBlockOfColumnValues
services::Status getBlockOfColumnValues(size_t feature_idx, size_t vector_idx, size_t value_num, ReadWriteMode rwflag, BlockDescriptor< double > &block) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:761
daal::data_management::interface1::HomogenNumericTable::getBlockOfRows
services::Status getBlockOfRows(size_t vector_idx, size_t vector_num, ReadWriteMode rwflag, BlockDescriptor< double > &block) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:735
daal::data_management::interface1::HomogenNumericTable::getBlockOfColumnValues
services::Status getBlockOfColumnValues(size_t feature_idx, size_t vector_idx, size_t value_num, ReadWriteMode rwflag, BlockDescriptor< float > &block) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:766
daal::data_management::interface1::HomogenNumericTable::releaseBlockOfColumnValues
services::Status releaseBlockOfColumnValues(BlockDescriptor< double > &block) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:777
daal::data_management::interface1::HomogenNumericTable::setArray
services::Status setArray(DataType *const ptr, size_t nRows)
Definition: homogen_numeric_table.h:645
daal::data_management::interface1::NumericTableFeature
Data structure describes the Numeric Table feature.
Definition: data_dictionary.h:74
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(NumericTableDictionaryPtr ddictForHomogenNumericTable)
Definition: homogen_numeric_table.h:105
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::MemType
MemType
Definition: daal_defines.h:156
daal::data_management::interface1::HomogenNumericTable::create
static services::SharedPtr< HomogenNumericTable< DataType > > create(services::Status *stat=NULL)
Definition: homogen_numeric_table.h:135
daal::services::ErrorEmptyHomogenNumericTable
Definition: error_indexes.h:185
daal::data_management::interface1::HomogenNumericTable::releaseBlockOfRows
services::Status releaseBlockOfRows(BlockDescriptor< int > &block) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:756
daal::data_management::interface1::HomogenNumericTable::create
static services::SharedPtr< HomogenNumericTable< DataType > > create(size_t nColumns, size_t nRows, AllocationFlag memoryAllocationFlag, services::Status *stat=NULL)
Definition: homogen_numeric_table.h:450
daal::data_management::interface1::HomogenNumericTable::create
static services::SharedPtr< HomogenNumericTable< DataType > > create(DictionaryIface::FeaturesEqual featuresEqual, const services::SharedPtr< DataType > &ptr, size_t nColumns, size_t nRows, services::Status *stat=NULL)
Definition: homogen_numeric_table.h:269
daal::data_management::interface1::Dictionary
Class that represents a dictionary of a data set and provides methods to work with the data dictionar...
Definition: data_dictionary.h:184