25 #ifndef __HOMOGEN_NUMERIC_TABLE_H__
26 #define __HOMOGEN_NUMERIC_TABLE_H__
28 #include "services/daal_memory.h"
29 #include "services/daal_defines.h"
31 #include "data_management/data/numeric_table.h"
32 #include "data_management/data/data_serialize.h"
33 #include "data_management/data/internal/conversion.h"
37 namespace data_management
53 template<
typename DataType = DAAL_DATA_TYPE>
54 class DAAL_EXPORT HomogenNumericTable :
public NumericTable
57 DECLARE_SERIALIZABLE_TAG();
58 DECLARE_SERIALIZABLE_IMPL();
60 DAAL_CAST_OPERATOR(HomogenNumericTable)
64 typedef DataType baseDataType;
72 DAAL_DEPRECATED HomogenNumericTable( NumericTableDictionary *ddict ):
83 HomogenNumericTable( NumericTableDictionaryPtr ddictForHomogenNumericTable ):
84 NumericTable(ddictForHomogenNumericTable)
95 static services::SharedPtr<HomogenNumericTable<DataType> > create(NumericTableDictionaryPtr ddictForHomogenNumericTable, services::Status *stat = NULL)
97 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(HomogenNumericTable, DataType, ddictForHomogenNumericTable);
104 HomogenNumericTable():
113 static services::SharedPtr<HomogenNumericTable<DataType> > create(services::Status *stat = NULL)
115 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL(HomogenNumericTable, DataType);
125 HomogenNumericTable( DataType *
const ptr,
size_t nColumns = 0,
size_t nRows = 0 ):
126 NumericTable( nColumns, nRows )
129 this->_status |= setArray( ptr, nRows );
131 NumericTableFeature df;
132 df.setType<DataType>();
133 this->_status |= _ddict->setAllFeatures(df);
144 static services::SharedPtr<HomogenNumericTable<DataType> > create(DataType *
const ptr,
145 size_t nColumns = 0,
size_t nRows = 0,
146 services::Status *stat = NULL)
148 return create(services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows, stat);
158 HomogenNumericTable(
const services::SharedPtr<DataType> &ptr,
size_t nColumns,
size_t nRows ):
159 NumericTable( nColumns, nRows )
162 this->_status |= setArray( ptr, nRows );
164 NumericTableFeature df;
165 df.setType<DataType>();
166 this->_status |= _ddict->setAllFeatures(df);
177 static services::SharedPtr<HomogenNumericTable<DataType> > create(
const services::SharedPtr<DataType> &ptr,
178 size_t nColumns,
size_t nRows,
179 services::Status *stat = NULL)
181 return create(DictionaryIface::notEqual, ptr, nColumns, nRows, stat);
192 HomogenNumericTable( DictionaryIface::FeaturesEqual featuresEqual, DataType *
const ptr = 0,
size_t nColumns = 0,
size_t nRows = 0):
193 NumericTable( nColumns, nRows, featuresEqual )
196 this->_status |= setArray( ptr, nRows );
198 NumericTableFeature df;
199 df.setType<DataType>();
200 this->_status |= _ddict->setAllFeatures(df);
212 static services::SharedPtr<HomogenNumericTable<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
213 DataType *
const ptr = 0,
size_t nColumns = 0,
size_t nRows = 0,
214 services::Status *stat = NULL)
216 return create(featuresEqual, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows, stat);
227 HomogenNumericTable( DictionaryIface::FeaturesEqual featuresEqual,
const services::SharedPtr<DataType> &ptr,
size_t nColumns,
size_t nRows ):
228 NumericTable( nColumns, nRows, featuresEqual )
231 this->_status |= setArray( ptr, nRows );
233 NumericTableFeature df;
234 df.setType<DataType>();
235 this->_status |= _ddict->setAllFeatures(df);
247 static services::SharedPtr<HomogenNumericTable<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
248 const services::SharedPtr<DataType> &ptr,
249 size_t nColumns,
size_t nRows, services::Status *stat = NULL)
251 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(HomogenNumericTable, DataType, featuresEqual, ptr, nColumns, nRows);
262 HomogenNumericTable( DataType *
const ptr,
size_t nColumns,
size_t nRows,
const DataType &constValue ):
263 NumericTable( nColumns, nRows )
266 this->_status |= setArray( ptr, nRows );
268 NumericTableFeature df;
269 df.setType<DataType>();
270 this->_status |= _ddict->setAllFeatures(df);
271 this->_status |= assign<DataType>(constValue);
283 static services::SharedPtr<HomogenNumericTable<DataType> > create(DataType *
const ptr,
size_t nColumns,
size_t nRows,
const DataType &constValue,
284 services::Status *stat = NULL)
286 return create(services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows, constValue, stat);
297 HomogenNumericTable(
const services::SharedPtr<DataType> &ptr,
size_t nColumns,
size_t nRows,
const DataType &constValue ):
298 NumericTable( nColumns, nRows )
301 this->_status |= setArray( ptr, nRows );
303 NumericTableFeature df;
304 df.setType<DataType>();
305 this->_status |= _ddict->setAllFeatures(df);
306 this->_status |= assign<DataType>(constValue);
318 static services::SharedPtr<HomogenNumericTable<DataType> > create(
const services::SharedPtr<DataType> &ptr,
size_t nColumns,
size_t nRows,
319 const DataType &constValue, services::Status *stat = NULL)
321 return create(DictionaryIface::notEqual, ptr, nColumns, nRows, constValue, stat);
333 HomogenNumericTable( DictionaryIface::FeaturesEqual featuresEqual, DataType *
const ptr,
size_t nColumns,
size_t nRows,
const DataType &constValue ):
334 NumericTable( nColumns, nRows, featuresEqual )
337 this->_status |= setArray( ptr, nRows );
339 NumericTableFeature df;
340 df.setType<DataType>();
341 this->_status |= _ddict->setAllFeatures(df);
342 this->_status |= assign<DataType>(constValue);
355 static services::SharedPtr<HomogenNumericTable<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual, DataType *
const ptr,
356 size_t nColumns,
size_t nRows,
const DataType &constValue,
357 services::Status *stat = NULL)
359 return create(featuresEqual, services::SharedPtr<DataType>(ptr, services::EmptyDeleter()), nColumns, nRows, constValue, stat);
371 HomogenNumericTable( DictionaryIface::FeaturesEqual featuresEqual,
const services::SharedPtr<DataType> &ptr,
size_t nColumns,
size_t nRows,
const DataType &constValue ):
372 NumericTable( nColumns, nRows, featuresEqual )
375 this->_status |= setArray( ptr, nRows );
377 NumericTableFeature df;
378 df.setType<DataType>();
379 this->_status |= _ddict->setAllFeatures(df);
380 this->_status |= assign<DataType>(constValue);
393 static services::SharedPtr<HomogenNumericTable<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
394 const services::SharedPtr<DataType> &ptr,
395 size_t nColumns,
size_t nRows,
const DataType &constValue,
396 services::Status *stat = NULL)
398 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(HomogenNumericTable, DataType, featuresEqual, ptr, nColumns, nRows, constValue);
408 HomogenNumericTable(
size_t nColumns,
size_t nRows, AllocationFlag memoryAllocationFlag ):
409 NumericTable( nColumns, nRows )
413 NumericTableFeature df;
414 df.setType<DataType>();
415 this->_status |= _ddict->setAllFeatures(df);
417 if( memoryAllocationFlag == doAllocate ) this->_status |= allocateDataMemoryImpl();
428 static services::SharedPtr<HomogenNumericTable<DataType> > create(
size_t nColumns,
size_t nRows, AllocationFlag memoryAllocationFlag,
429 services::Status *stat = NULL)
431 return create(DictionaryIface::notEqual, nColumns, nRows, memoryAllocationFlag, stat);
442 HomogenNumericTable( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows, AllocationFlag memoryAllocationFlag ):
443 NumericTable( nColumns, nRows, featuresEqual )
447 NumericTableFeature df;
448 df.setType<DataType>();
449 this->_status |= _ddict->setAllFeatures(df);
451 if( memoryAllocationFlag == doAllocate ) this->_status |= allocateDataMemoryImpl();
463 static services::SharedPtr<HomogenNumericTable<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
464 size_t nColumns,
size_t nRows, AllocationFlag memoryAllocationFlag,
465 services::Status *stat = NULL)
467 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(HomogenNumericTable, DataType, featuresEqual, nColumns, nRows, memoryAllocationFlag);
478 HomogenNumericTable(
size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag,
479 const DataType &constValue ):
480 NumericTable( nColumns, nRows )
484 NumericTableFeature df;
485 df.setType<DataType>();
487 this->_status |= _ddict->setAllFeatures(df);
489 if( memoryAllocationFlag == doAllocate ) this->_status |= allocateDataMemoryImpl();
491 this->_status |= assign<DataType>(constValue);
503 static services::SharedPtr<HomogenNumericTable<DataType> > create(
size_t nColumns,
size_t nRows, AllocationFlag memoryAllocationFlag,
504 const DataType &constValue, services::Status *stat = NULL)
506 return create(DictionaryIface::notEqual, nColumns, nRows, memoryAllocationFlag, constValue, stat);
518 HomogenNumericTable( DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag,
519 const DataType &constValue ):
520 NumericTable( nColumns, nRows, featuresEqual )
524 NumericTableFeature df;
525 df.setType<DataType>();
527 this->_status |= _ddict->setAllFeatures(df);
529 if( memoryAllocationFlag == doAllocate ) { this->_status |= allocateDataMemoryImpl(); }
531 this->_status |= assign<DataType>(constValue);
544 static services::SharedPtr<HomogenNumericTable<DataType> > create(DictionaryIface::FeaturesEqual featuresEqual,
545 size_t nColumns,
size_t nRows, AllocationFlag memoryAllocationFlag,
546 const DataType &constValue, services::Status *stat = NULL)
548 DAAL_DEFAULT_CREATE_TEMPLATE_IMPL_EX(HomogenNumericTable, DataType, featuresEqual, nColumns, nRows, memoryAllocationFlag, constValue);
551 virtual ~HomogenNumericTable()
553 freeDataMemoryImpl();
560 DataType *getArray()
const
562 return (DataType*)_ptr.get();
569 services::SharedPtr<DataType> getArraySharedPtr()
const
571 return services::reinterpretPointerCast<DataType, byte>(_ptr);
579 DAAL_DEPRECATED services::Status setArray( DataType *
const ptr )
581 freeDataMemoryImpl();
583 _ptr = services::SharedPtr<byte>((byte*)ptr, services::EmptyDeleter());
587 _memStatus = userAllocated;
591 _memStatus = notAllocated;
593 return services::Status();
601 DAAL_DEPRECATED services::Status setArray(
const services::SharedPtr<DataType> &ptr )
603 freeDataMemoryImpl();
605 _ptr = services::reinterpretPointerCast<byte, DataType>(ptr);
609 _memStatus = userAllocated;
613 _memStatus = notAllocated;
615 return services::Status();
623 services::Status setArray( DataType *
const ptr,
size_t nRows )
625 freeDataMemoryImpl();
627 _ptr = services::SharedPtr<byte>((byte*)ptr, services::EmptyDeleter());
632 _memStatus = userAllocated;
636 _memStatus = notAllocated;
638 return services::Status();
646 services::Status setArray( services::SharedPtr<DataType> ptr,
size_t nRows )
648 freeDataMemoryImpl();
650 _ptr = services::reinterpretPointerCast<byte, DataType>(ptr);
655 _memStatus = userAllocated;
659 _memStatus = notAllocated;
661 return services::Status();
668 template <
typename T>
669 services::Status assign(T value)
671 if( _memStatus == notAllocated )
672 return services::Status(services::ErrorEmptyHomogenNumericTable);
674 size_t nColumns = getNumberOfColumns();
675 size_t nRows = getNumberOfRows();
677 DataType *ptr = (DataType*)_ptr.get();
678 DataType valueDataType = (DataType)value;
680 internal::vectorAssignValueToArray<DataType>(ptr, nColumns*nRows, valueDataType);
682 return services::Status();
690 DataType *operator[](
size_t i)
692 size_t nColumns = getNumberOfColumns();
693 return (DataType*)_ptr.get() + i * nColumns;
699 virtual services::Status assign(
float value) DAAL_C11_OVERRIDE {
return assign<DataType>((DataType)value);}
704 virtual services::Status assign(
double value) DAAL_C11_OVERRIDE {
return assign<DataType>((DataType)value);}
709 virtual services::Status assign(
int value) DAAL_C11_OVERRIDE {
return assign<DataType>((DataType)value);}
711 services::Status getBlockOfRows(
size_t vector_idx,
size_t vector_num, ReadWriteMode rwflag, BlockDescriptor<double> &block) DAAL_C11_OVERRIDE
713 return getTBlock<double>(vector_idx, vector_num, rwflag, block);
715 services::Status getBlockOfRows(
size_t vector_idx,
size_t vector_num, ReadWriteMode rwflag, BlockDescriptor<float> &block) DAAL_C11_OVERRIDE
717 return getTBlock<float>(vector_idx, vector_num, rwflag, block);
719 services::Status getBlockOfRows(
size_t vector_idx,
size_t vector_num, ReadWriteMode rwflag, BlockDescriptor<int> &block) DAAL_C11_OVERRIDE
721 return getTBlock<int>(vector_idx, vector_num, rwflag, block);
724 services::Status releaseBlockOfRows(BlockDescriptor<double> &block) DAAL_C11_OVERRIDE
726 return releaseTBlock<double>(block);
728 services::Status releaseBlockOfRows(BlockDescriptor<float> &block) DAAL_C11_OVERRIDE
730 return releaseTBlock<float>(block);
732 services::Status releaseBlockOfRows(BlockDescriptor<int> &block) DAAL_C11_OVERRIDE
734 return releaseTBlock<int>(block);
737 services::Status getBlockOfColumnValues(
size_t feature_idx,
size_t vector_idx,
size_t value_num,
738 ReadWriteMode rwflag, BlockDescriptor<double> &block) DAAL_C11_OVERRIDE
740 return getTFeature<double>(feature_idx, vector_idx, value_num, rwflag, block);
742 services::Status getBlockOfColumnValues(
size_t feature_idx,
size_t vector_idx,
size_t value_num,
743 ReadWriteMode rwflag, BlockDescriptor<float> &block) DAAL_C11_OVERRIDE
745 return getTFeature<float>(feature_idx, vector_idx, value_num, rwflag, block);
747 services::Status getBlockOfColumnValues(
size_t feature_idx,
size_t vector_idx,
size_t value_num,
748 ReadWriteMode rwflag, BlockDescriptor<int> &block) DAAL_C11_OVERRIDE
750 return getTFeature<int>(feature_idx, vector_idx, value_num, rwflag, block);
753 services::Status releaseBlockOfColumnValues(BlockDescriptor<double> &block) DAAL_C11_OVERRIDE
755 return releaseTFeature<double>(block);
757 services::Status releaseBlockOfColumnValues(BlockDescriptor<float> &block) DAAL_C11_OVERRIDE
759 return releaseTFeature<float>(block);
761 services::Status releaseBlockOfColumnValues(BlockDescriptor<int> &block) DAAL_C11_OVERRIDE
763 return releaseTFeature<int>(block);
767 services::SharedPtr<byte> _ptr;
769 HomogenNumericTable(services::Status &st):
770 NumericTable(0, 0, DictionaryIface::notEqual, st)
773 HomogenNumericTable(NumericTableDictionaryPtr ddictForHomogenNumericTable, services::Status &st):
774 NumericTable(ddictForHomogenNumericTable, st)
779 HomogenNumericTable(DictionaryIface::FeaturesEqual featuresEqual,
const services::SharedPtr<DataType> &ptr,
780 size_t nColumns,
size_t nRows, services::Status &st):
781 NumericTable(nColumns, nRows, featuresEqual, st)
784 st |= setArray( ptr, nRows );
786 NumericTableFeature df;
787 df.setType<DataType>();
788 st |= _ddict->setAllFeatures(df);
791 HomogenNumericTable(DictionaryIface::FeaturesEqual featuresEqual,
const services::SharedPtr<DataType> &ptr,
792 size_t nColumns,
size_t nRows,
const DataType &constValue, services::Status &st):
793 NumericTable(nColumns, nRows, featuresEqual, st)
796 st |= setArray( ptr, nRows );
798 NumericTableFeature df;
799 df.setType<DataType>();
800 st |= _ddict->setAllFeatures(df);
801 st |= assign<DataType>(constValue);
804 HomogenNumericTable(DictionaryIface::FeaturesEqual featuresEqual,
805 size_t nColumns,
size_t nRows, AllocationFlag memoryAllocationFlag, services::Status &st):
806 NumericTable(nColumns, nRows, featuresEqual, st)
810 NumericTableFeature df;
811 df.setType<DataType>();
812 st |= _ddict->setAllFeatures(df);
814 if( memoryAllocationFlag == doAllocate ) st |= allocateDataMemoryImpl();
817 HomogenNumericTable(DictionaryIface::FeaturesEqual featuresEqual,
size_t nColumns,
size_t nRows,
818 NumericTable::AllocationFlag memoryAllocationFlag,
819 const DataType &constValue, services::Status &st):
820 NumericTable(nColumns, nRows, featuresEqual, st)
824 NumericTableFeature df;
825 df.setType<DataType>();
827 st |= _ddict->setAllFeatures(df);
829 if( memoryAllocationFlag == doAllocate ) { st |= allocateDataMemoryImpl(); }
831 st |= assign<DataType>(constValue);
834 services::Status allocateDataMemoryImpl(daal::MemType type = daal::dram) DAAL_C11_OVERRIDE
836 freeDataMemoryImpl();
838 size_t size = getNumberOfColumns() * getNumberOfRows();
840 if (!(0 == getNumberOfColumns()) && !(0 == getNumberOfRows()))
842 DAAL_CHECK((getNumberOfColumns() == size / getNumberOfRows()),
843 services::throwIfPossible(services::Status(services::ErrorBufferSizeIntegerOverflow)));
845 size_t sizeEx = size *
sizeof(DataType);
846 DAAL_CHECK((size == sizeEx /
sizeof(DataType)),
847 services::throwIfPossible(services::Status(services::ErrorBufferSizeIntegerOverflow)));
852 return services::Status(getNumberOfColumns() == 0 ? services::ErrorIncorrectNumberOfFeatures :
853 services::ErrorIncorrectNumberOfObservations);
856 _ptr = services::SharedPtr<byte>((byte *)daal::services::daal_malloc(size *
sizeof(DataType)), services::ServiceDeleter());
859 return services::Status(services::ErrorMemoryAllocationFailed);
861 _memStatus = internallyAllocated;
862 return services::Status();
865 void freeDataMemoryImpl() DAAL_C11_OVERRIDE
867 _ptr = services::SharedPtr<byte>();
868 _memStatus = notAllocated;
871 template<
typename Archive,
bool onDeserialize>
872 services::Status serialImpl( Archive *archive )
874 NumericTable::serialImpl<Archive, onDeserialize>( archive );
878 allocateDataMemoryImpl();
881 size_t size = getNumberOfColumns() * getNumberOfRows();
883 archive->set( (DataType*)_ptr.get(), size );
885 return services::Status();
889 byte *internal_getBlockOfRows(
size_t idx )
891 size_t _featnum = _ddict->getNumberOfFeatures();
892 return _ptr.get() + _featnum * idx *
sizeof(DataType);
895 byte *internal_getBlockOfRows(
size_t idx,
size_t feat_idx )
897 size_t _featnum = _ddict->getNumberOfFeatures();
898 return _ptr.get() + _featnum * idx *
sizeof(DataType) + feat_idx *
sizeof(DataType);
903 template <
typename T>
904 services::Status getTBlock(
size_t idx,
size_t nrows,
int rwFlag, BlockDescriptor<T> &block )
906 size_t ncols = getNumberOfColumns();
907 size_t nobs = getNumberOfRows();
908 block.setDetails( 0, idx, rwFlag );
912 block.resizeBuffer( ncols, 0 );
913 return services::Status();
916 nrows = ( idx + nrows < nobs ) ? nrows : nobs - idx;
918 if( IsSameType<T, DataType>::value )
920 block.setPtr(&_ptr, internal_getBlockOfRows(idx) , ncols, nrows );
924 if( !block.resizeBuffer( ncols, nrows ) )
925 return services::Status(services::ErrorMemoryAllocationFailed);
927 if( rwFlag & (
int)readOnly )
929 byte *location = internal_getBlockOfRows(idx);
931 for(
size_t i = 0; i < nrows; i++)
933 internal::getVectorUpCast(features::internal::getIndexNumType<DataType>(), internal::getConversionDataType<T>())
934 ( ncols, ((DataType*)location) + i * ncols, ((T*)block.getBlockPtr()) + i * ncols );
938 return services::Status();
941 template <
typename T>
942 services::Status releaseTBlock( BlockDescriptor<T> &block )
944 if(block.getRWFlag() & (int)writeOnly)
946 byte *location = internal_getBlockOfRows( block.getRowsOffset() );
947 size_t ncols = getNumberOfColumns();
948 size_t nrows = block.getNumberOfRows();
950 if( IsSameType<T, DataType>::value )
952 if( (T*)block.getBlockPtr() != (T *)location )
954 int result = daal::services::internal::daal_memcpy_s(location, nrows * ncols *
sizeof(T),
955 block.getBlockPtr(), nrows * ncols *
sizeof(T));
956 DAAL_CHECK(!result, services::ErrorMemoryCopyFailedInternal);
961 for(
size_t i = 0; i < nrows; i++)
963 internal::getVectorDownCast(features::internal::getIndexNumType<DataType>(), internal::getConversionDataType<T>())
964 ( ncols, ((T*)block.getBlockPtr()) + i * ncols, ((DataType*)location) + i * ncols );
969 return services::Status();
972 template <typename T>
973 services::Status getTFeature(
size_t feat_idx,
size_t idx,
size_t nrows,
int rwFlag, BlockDescriptor<T> &block)
975 size_t ncols = getNumberOfColumns();
976 size_t nobs = getNumberOfRows();
977 block.setDetails( feat_idx, idx, rwFlag );
981 block.resizeBuffer( 1, 0 );
982 return services::Status();
985 nrows = ( idx + nrows < nobs ) ? nrows : nobs - idx;
987 if( ( IsSameType<T, DataType>::value ) && (ncols == 1) )
989 block.setPtr(&_ptr, internal_getBlockOfRows(idx) , ncols, nrows );
993 if( !block.resizeBuffer( 1, nrows ) )
994 return services::Status(services::ErrorMemoryAllocationFailed);
996 if( rwFlag & (
int)readOnly )
998 DataType *location = (DataType *)internal_getBlockOfRows(idx, feat_idx);
999 T *buffer = block.getBlockPtr();
1000 internal::getVectorStrideUpCast(features::internal::getIndexNumType<DataType>(), internal::getConversionDataType<T>())
1001 ( nrows, location,
sizeof(DataType)*ncols, buffer,
sizeof(T) );
1004 return services::Status();
1007 template <
typename T>
1008 services::Status releaseTFeature( BlockDescriptor<T> &block )
1010 if (block.getRWFlag() & (int)writeOnly)
1012 size_t ncols = getNumberOfColumns();
1013 DataType *location = (DataType *)internal_getBlockOfRows(block.getRowsOffset(), block.getColumnsOffset());
1014 internal::getVectorStrideDownCast(features::internal::getIndexNumType<DataType>(), internal::getConversionDataType<T>())
1015 ( block.getNumberOfRows(), block.getBlockPtr(),
sizeof(T), location, ncols *
sizeof(DataType) );
1018 return services::Status();
1021 services::Status setNumberOfColumnsImpl(
size_t ncol) DAAL_C11_OVERRIDE
1023 if( _ddict->getNumberOfFeatures() != ncol )
1025 _ddict->resetDictionary();
1026 _ddict->setNumberOfFeatures(ncol);
1028 NumericTableFeature df;
1029 df.setType<DataType>();
1030 _ddict->setAllFeatures(df);
1032 return services::Status();
1038 using interface1::HomogenNumericTable;
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:711
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(DataType *const ptr, size_t nColumns=0, size_t nRows=0)
Definition: homogen_numeric_table.h:125
daal::data_management::interface1::HomogenNumericTable::releaseBlockOfColumnValues
services::Status releaseBlockOfColumnValues(BlockDescriptor< int > &block) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:761
daal::data_management::interface1::HomogenNumericTable::releaseBlockOfColumnValues
services::Status releaseBlockOfColumnValues(BlockDescriptor< double > &block) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:753
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(NumericTableDictionaryPtr ddictForHomogenNumericTable)
Definition: homogen_numeric_table.h:83
daal::algorithms::multivariate_outlier_detection::location
Definition: outlier_detection_multivariate_types.h:74
daal::services::ErrorIncorrectNumberOfObservations
Definition: error_indexes.h:73
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(size_t nColumns, size_t nRows, NumericTable::AllocationFlag memoryAllocationFlag, const DataType &constValue)
Definition: homogen_numeric_table.h:478
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:393
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:715
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(DataType *const ptr, size_t nColumns, size_t nRows, const DataType &constValue)
Definition: homogen_numeric_table.h:262
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(size_t nColumns, size_t nRows, AllocationFlag memoryAllocationFlag)
Definition: homogen_numeric_table.h:408
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:747
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:163
daal::data_management::interface1::NumericTable
Class for a data management component responsible for representation of data in the numeric format...
Definition: numeric_table.h:577
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:742
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:355
daal::data_management::interface1::HomogenNumericTable::getArraySharedPtr
services::SharedPtr< DataType > getArraySharedPtr() const
Definition: homogen_numeric_table.h:569
daal::data_management::interface1::HomogenNumericTable::baseDataType
DataType baseDataType
Definition: homogen_numeric_table.h:64
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(DictionaryIface::FeaturesEqual featuresEqual, size_t nColumns, size_t nRows, AllocationFlag memoryAllocationFlag)
Definition: homogen_numeric_table.h:442
daal::data_management::interface1::HomogenNumericTable::setArray
services::Status setArray(DataType *const ptr, size_t nRows)
Definition: homogen_numeric_table.h:623
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:737
daal::data_management::interface1::NumericTableFeature::setType
void setType()
Definition: data_dictionary.h:96
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:227
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:544
daal::data_management::interface1::HomogenNumericTable::setArray
DAAL_DEPRECATED services::Status setArray(const services::SharedPtr< DataType > &ptr)
Definition: homogen_numeric_table.h:601
daal::data_management::interface1::HomogenNumericTable::releaseBlockOfRows
services::Status releaseBlockOfRows(BlockDescriptor< float > &block) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:728
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:428
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:247
daal::services::ErrorBufferSizeIntegerOverflow
Definition: error_indexes.h:145
daal::data_management::interface1::HomogenNumericTable::create
static services::SharedPtr< HomogenNumericTable< DataType > > create(NumericTableDictionaryPtr ddictForHomogenNumericTable, services::Status *stat=NULL)
Definition: homogen_numeric_table.h:95
daal::MemType
MemType
Definition: daal_defines.h:147
daal::data_management::interface1::HomogenNumericTable::getArray
DataType * getArray() const
Definition: homogen_numeric_table.h:560
daal::data_management::interface1::HomogenNumericTable::releaseBlockOfColumnValues
services::Status releaseBlockOfColumnValues(BlockDescriptor< float > &block) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:757
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:463
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:318
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:144
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:371
daal::data_management::interface1::HomogenNumericTable::releaseBlockOfRows
services::Status releaseBlockOfRows(BlockDescriptor< int > &block) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:732
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:283
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::services::daal_memcpy_s
DAAL_DEPRECATED 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(const services::SharedPtr< DataType > &ptr, size_t nColumns, size_t nRows, services::Status *stat=NULL)
Definition: homogen_numeric_table.h:177
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:719
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable(const services::SharedPtr< DataType > &ptr, size_t nColumns, size_t nRows)
Definition: homogen_numeric_table.h:158
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::HomogenNumericTable::create
static services::SharedPtr< HomogenNumericTable< DataType > > create(services::Status *stat=NULL)
Definition: homogen_numeric_table.h:113
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:212
daal::data_management::interface1::HomogenNumericTable::setArray
DAAL_DEPRECATED services::Status setArray(DataType *const ptr)
Definition: homogen_numeric_table.h:579
daal::dram
Definition: daal_defines.h:149
daal::services::daal_malloc
DAAL_EXPORT void * daal_malloc(size_t size, size_t alignment=DAAL_MALLOC_DEFAULT_ALIGNMENT)
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:503
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:518
daal::data_management::interface1::HomogenNumericTable::assign
virtual services::Status assign(float value) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:699
daal::data_management::interface1::HomogenNumericTable::releaseBlockOfRows
services::Status releaseBlockOfRows(BlockDescriptor< double > &block) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:724
daal::data_management::interface1::BlockDescriptor
Base class that manages buffer memory for read/write operations required by numeric tables...
Definition: numeric_table.h:57
daal::data_management::interface1::HomogenNumericTable::assign
virtual services::Status assign(double value) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:704
daal::services::ErrorMemoryAllocationFailed
Definition: error_indexes.h:150
daal::services::ErrorIncorrectNumberOfFeatures
Definition: error_indexes.h:72
daal::services::ErrorMemoryCopyFailedInternal
Definition: error_indexes.h:152
daal::data_management::interface1::NumericTableFeature
Data structure describes the Numeric Table feature.
Definition: data_dictionary.h:53
daal::data_management::interface1::HomogenNumericTable::operator[]
DataType * operator[](size_t i)
Definition: homogen_numeric_table.h:690
daal::data_management::interface1::HomogenNumericTable::setArray
services::Status setArray(services::SharedPtr< DataType > ptr, size_t nRows)
Definition: homogen_numeric_table.h:646
daal::data_management::interface1::HomogenNumericTable::HomogenNumericTable
HomogenNumericTable()
Definition: homogen_numeric_table.h:104
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:192
daal::algorithms::math::abs::value
Definition: abs_types.h:88
daal::data_management::interface1::HomogenNumericTable::assign
virtual services::Status assign(int value) DAAL_C11_OVERRIDE
Definition: homogen_numeric_table.h:709
daal::data_management::interface1::HomogenNumericTable::assign
services::Status assign(T value)
Definition: homogen_numeric_table.h:669
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:297
daal::services::ErrorEmptyHomogenNumericTable
Definition: error_indexes.h:166
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:333