C++ API Reference for Intel® Data Analytics Acceleration Library 2019 Update 5

numeric_table.h
1 /* file: numeric_table.h */
2 /*******************************************************************************
3 * Copyright 2014-2019 Intel Corporation.
4 *
5 * This software and the related documents are Intel copyrighted materials, and
6 * your use of them is governed by the express license under which they were
7 * provided to you (License). Unless the License provides otherwise, you may not
8 * use, modify, copy, publish, distribute, disclose or transmit this software or
9 * the related documents without Intel's prior written permission.
10 *
11 * This software and the related documents are provided as is, with no express
12 * or implied warranties, other than those that are expressly stated in the
13 * License.
14 *******************************************************************************/
15 
16 /*
17 //++
18 // Declaration and implementation of the base class for numeric tables.
19 //--
20 */
21 
22 
23 #ifndef __NUMERIC_TABLE_H__
24 #define __NUMERIC_TABLE_H__
25 
26 #include "services/base.h"
27 #include "services/daal_defines.h"
28 #include "services/daal_memory.h"
29 #include "services/error_handling.h"
30 #include "algorithms/algorithm_types.h"
31 #include "data_management/data/data_collection.h"
32 #include "data_management/data/data_dictionary.h"
33 
34 #include "data_management/data/numeric_types.h"
35 
36 namespace daal
37 {
39 namespace data_management
40 {
41 
42 namespace interface1
43 {
48 class NumericTable;
49 
54 template<typename DataType = DAAL_DATA_TYPE>
55 class DAAL_EXPORT BlockDescriptor
56 {
57 public:
59  BlockDescriptor() : _ptr(), _buffer(), _capacity(0), _ncols(0), _nrows(0), _colsOffset(0), _rowsOffset(0), _rwFlag(0), _pPtr(0), _rawPtr(0)
60  {}
61 
63  ~BlockDescriptor() { freeBuffer(); }
64 
69  inline DataType *getBlockPtr() const
70  {
71  if(_rawPtr)
72  {
73  return (DataType *)_rawPtr;
74  }
75  return _ptr.get();
76  }
77 
82  inline services::SharedPtr<DataType> getBlockSharedPtr() const
83  {
84  if(_rawPtr)
85  {
86  return services::SharedPtr<DataType>(services::reinterpretPointerCast<DataType, byte>(*_pPtr), (DataType *)_rawPtr);
87  }
88  return _ptr;
89  }
90 
95  inline size_t getNumberOfColumns() const { return _ncols; }
96 
101  inline size_t getNumberOfRows() const { return _nrows; }
102 
106  inline void reset()
107  {
108  _colsOffset = 0;
109  _rowsOffset = 0;
110  _rwFlag = 0;
111  _pPtr = NULL;
112  _rawPtr = NULL;
113  }
114 
115 public:
122  inline void setPtr( DataType *ptr, size_t nColumns, size_t nRows )
123  {
124  _ptr = services::SharedPtr<DataType>(ptr, services::EmptyDeleter());
125  _ncols = nColumns;
126  _nrows = nRows;
127  }
128 
135  void setPtr(services::SharedPtr<byte> *pPtr, byte *rawPtr, size_t nColumns, size_t nRows )
136  {
137  _pPtr = pPtr;
138  _rawPtr = rawPtr;
139  _ncols = nColumns;
140  _nrows = nRows;
141  }
142 
151  inline bool resizeBuffer( size_t nColumns, size_t nRows, size_t auxMemorySize = 0 )
152  {
153  _ncols = nColumns;
154  _nrows = nRows;
155 
156  size_t newSize = nColumns * nRows * sizeof(DataType) + auxMemorySize;
157 
158  if ( newSize > _capacity )
159  {
160  freeBuffer();
161  _buffer = services::SharedPtr<DataType>((DataType *)daal::services::daal_malloc(newSize), services::ServiceDeleter());
162  if ( _buffer != 0 )
163  {
164  _capacity = newSize;
165  }
166  else
167  {
168  return false;
169  }
170 
171  }
172 
173  _ptr = _buffer;
174  if(!auxMemorySize)
175  {
176  if(_aux_ptr)
177  {
178  _aux_ptr = services::SharedPtr<DataType>();
179  }
180  }
181  else
182  {
183  _aux_ptr = services::SharedPtr<DataType>(_buffer, _buffer.get() + nColumns * nRows);
184  }
185 
186  return true;
187  }
188 
195  inline void setDetails( size_t columnIdx, size_t rowIdx, int rwFlag )
196  {
197  _colsOffset = columnIdx;
198  _rowsOffset = rowIdx;
199  _rwFlag = rwFlag;
200  }
201 
206  inline size_t getColumnsOffset() const { return _colsOffset; }
207 
212  inline size_t getRowsOffset() const { return _rowsOffset; }
213 
218  inline size_t getRWFlag() const { return _rwFlag; }
219 
224  inline void *getAdditionalBufferPtr() const { return _aux_ptr.get(); }
225  inline services::SharedPtr<DataType> getAdditionalBufferSharedPtr() const { return _aux_ptr; }
226 
227 protected:
231  void freeBuffer()
232  {
233  if(_buffer)
234  {
235  _buffer = services::SharedPtr<DataType>();
236  }
237  _capacity = 0;
238  }
239 
240 private:
241  services::SharedPtr<DataType> _ptr;
242  size_t _nrows;
243  size_t _ncols;
244 
245  size_t _colsOffset;
246  size_t _rowsOffset;
247  int _rwFlag;
248 
249  services::SharedPtr<DataType> _aux_ptr;
250 
251  services::SharedPtr<DataType> _buffer; /*<! Pointer to the buffer */
252  size_t _capacity; /*<! Buffer size in bytes */
253 
254  services::SharedPtr<byte> *_pPtr;
255  byte *_rawPtr;
256 };
257 
263 class NumericTableIface
264 {
265 public:
266  virtual ~NumericTableIface()
267  {}
272  enum MemoryStatus
273  {
274  notAllocated,
275  userAllocated,
276  internallyAllocated
277  };
278 
283  enum AllocationFlag
284  {
285  doNotAllocate = 0,
286  notAllocate = 0,
287  doAllocate = 1
288  };
289 
294  enum BasicStatisticsId
295  {
296  minimum = 0,
297  maximum = 1,
298  sum = 2,
299  sumSquares = 3
300  };
301 
306  enum FeatureBasicStatistics
307  {
308  counters
309  };
310 
315  enum NormalizationType
316  {
317  nonNormalized = 0,
318  standardScoreNormalized = 1,
319  minMaxNormalized = 2
320  };
321 
326  enum StorageLayout
327  {
328  soa = 1, // 1
329  aos = 2, // 2
330  csrArray = 1 << 4,
331  upperPackedSymmetricMatrix = 1 << 8,
332  lowerPackedSymmetricMatrix = 2 << 8,
333  upperPackedTriangularMatrix = 1 << 7,
334  lowerPackedTriangularMatrix = 4 << 8,
335  arrow = 8 << 8,
336 
337  layout_unknown = 0x80000000 // the last bit set
338  };
339 
345  DAAL_DEPRECATED_VIRTUAL virtual services::Status setDictionary( NumericTableDictionary *ddict ) { return services::Status(); }
346 
352  DAAL_DEPRECATED_VIRTUAL virtual NumericTableDictionary *getDictionary() const = 0;
353 
358  virtual NumericTableDictionaryPtr getDictionarySharedPtr() const = 0;
359 
364  DAAL_DEPRECATED_VIRTUAL virtual services::Status resetDictionary() { return services::Status(); }
365 
371  virtual features::FeatureType getFeatureType(size_t feature_idx) const = 0;
372 
378  virtual size_t getNumberOfCategories(size_t feature_idx) const = 0;
379 
384  virtual StorageLayout getDataLayout() const = 0;
385 
389  virtual services::Status resize(size_t nrows) = 0;
390 
397  DAAL_DEPRECATED_VIRTUAL virtual services::Status setNumberOfColumns(size_t ncol) = 0;
398 
405  DAAL_DEPRECATED_VIRTUAL virtual services::Status setNumberOfRows(size_t nrow) = 0;
406 
411  DAAL_DEPRECATED_VIRTUAL virtual services::Status allocateDataMemory(daal::MemType type = daal::dram) = 0;
412 
417  DAAL_DEPRECATED_VIRTUAL virtual void freeDataMemory() = 0;
418 
422  virtual services::Status allocateBasicStatistics() = 0;
423 
430  virtual services::Status check(const char *description, bool checkDataAllocation = true) const = 0;
431 
432 };
433 } // namespace interface1
434 using interface1::BlockDescriptor;
435 using interface1::NumericTableIface;
436 
437 const int packed_mask = (int)NumericTableIface::csrArray |
438  (int)NumericTableIface::upperPackedSymmetricMatrix |
439  (int)NumericTableIface::lowerPackedSymmetricMatrix |
440  (int)NumericTableIface::upperPackedTriangularMatrix |
441  (int)NumericTableIface::lowerPackedTriangularMatrix;
442 
443 namespace interface1
444 {
450 class DenseNumericTableIface
451 {
452 public:
453  virtual ~DenseNumericTableIface()
454  {}
465  virtual services::Status getBlockOfRows(size_t vector_idx, size_t vector_num, ReadWriteMode rwflag, BlockDescriptor<double> &block) = 0;
466 
477  virtual services::Status getBlockOfRows(size_t vector_idx, size_t vector_num, ReadWriteMode rwflag, BlockDescriptor<float> &block) = 0;
478 
489  virtual services::Status getBlockOfRows(size_t vector_idx, size_t vector_num, ReadWriteMode rwflag, BlockDescriptor<int> &block) = 0;
490 
495  virtual services::Status releaseBlockOfRows(BlockDescriptor<double> &block) = 0;
496 
501  virtual services::Status releaseBlockOfRows(BlockDescriptor<float> &block) = 0;
502 
507  virtual services::Status releaseBlockOfRows(BlockDescriptor<int> &block) = 0;
508 
520  virtual services::Status getBlockOfColumnValues(size_t feature_idx, size_t vector_idx, size_t value_num,
521  ReadWriteMode rwflag, BlockDescriptor<double> &block) = 0;
522 
534  virtual services::Status getBlockOfColumnValues(size_t feature_idx, size_t vector_idx, size_t value_num,
535  ReadWriteMode rwflag, BlockDescriptor<float> &block) = 0;
536 
548  virtual services::Status getBlockOfColumnValues(size_t feature_idx, size_t vector_idx, size_t value_num,
549  ReadWriteMode rwflag, BlockDescriptor<int> &block) = 0;
550 
555  virtual services::Status releaseBlockOfColumnValues(BlockDescriptor<double> &block) = 0;
556 
561  virtual services::Status releaseBlockOfColumnValues(BlockDescriptor<float> &block) = 0;
562 
567  virtual services::Status releaseBlockOfColumnValues(BlockDescriptor<int> &block) = 0;
568 };
569 
575 class DAAL_EXPORT NumericTable : public SerializationIface, public NumericTableIface, public DenseNumericTableIface
576 {
577 public:
578  DAAL_CAST_OPERATOR(NumericTable);
579 
585  DAAL_DEPRECATED NumericTable( NumericTableDictionary *ddict )
586  {
587  _obsnum = 0;
588  _ddict = NumericTableDictionaryPtr(ddict, services::EmptyDeleter());
589  _layout = layout_unknown;
590  _memStatus = notAllocated;
591  _normalizationFlag = NumericTable::nonNormalized;
592  }
593 
598  NumericTable( NumericTableDictionaryPtr ddict )
599  {
600  _obsnum = 0;
601  _ddict = ddict;
602  _layout = layout_unknown;
603  _memStatus = notAllocated;
604  _normalizationFlag = NumericTable::nonNormalized;
605  }
606 
613  NumericTable( size_t featnum, size_t obsnum, DictionaryIface::FeaturesEqual featuresEqual = DictionaryIface::notEqual )
614  {
615  _obsnum = obsnum;
616  _ddict = NumericTableDictionaryPtr(new NumericTableDictionary(featnum, featuresEqual));
617  _layout = layout_unknown;
618  _memStatus = notAllocated;
619  _normalizationFlag = NumericTable::nonNormalized;
620  }
621 
623  virtual ~NumericTable() {}
624 
625  DAAL_DEPRECATED_VIRTUAL virtual services::Status setDictionary( NumericTableDictionary *ddict ) DAAL_C11_OVERRIDE
626  {
627  _ddict = NumericTableDictionaryPtr(ddict, services::EmptyDeleter());
628  return services::Status();
629  }
630 
631  DAAL_DEPRECATED_VIRTUAL virtual NumericTableDictionary *getDictionary() const DAAL_C11_OVERRIDE { return _ddict.get(); }
632 
633  virtual NumericTableDictionaryPtr getDictionarySharedPtr() const DAAL_C11_OVERRIDE { return _ddict; }
634 
635  DAAL_DEPRECATED_VIRTUAL virtual services::Status resetDictionary() DAAL_C11_OVERRIDE { return services::Status(); }
636 
637  virtual services::Status resize(size_t nrows) DAAL_C11_OVERRIDE
638  {
639  size_t obsnum = _obsnum;
640  services::Status s = setNumberOfRowsImpl(nrows);
641  if((_memStatus != userAllocated && obsnum < nrows) || _memStatus == notAllocated)
642  {
643  s |= allocateDataMemoryImpl();
644  }
645  return s;
646  }
647 
652  size_t getNumberOfColumns() const
653  {
654  return _ddict->getNumberOfFeatures();
655  }
656 
661  size_t getNumberOfRows() const { return _obsnum; }
662 
663  DAAL_DEPRECATED_VIRTUAL services::Status setNumberOfColumns(size_t ncol) DAAL_C11_OVERRIDE
664  {
665  return setNumberOfColumnsImpl(ncol);
666  }
667 
668  DAAL_DEPRECATED_VIRTUAL services::Status setNumberOfRows(size_t nrow) DAAL_C11_OVERRIDE
669  {
670  return setNumberOfRowsImpl(nrow);
671  }
672 
673  DAAL_DEPRECATED_VIRTUAL services::Status allocateDataMemory(daal::MemType type = daal::dram) DAAL_C11_OVERRIDE
674  {
675  return allocateDataMemoryImpl(type);
676  }
677 
678  DAAL_DEPRECATED_VIRTUAL void freeDataMemory() DAAL_C11_OVERRIDE
679  {
680  freeDataMemoryImpl();
681  }
682 
683  StorageLayout getDataLayout() const DAAL_C11_OVERRIDE
684  {
685  return _layout;
686  }
687 
688  features::FeatureType getFeatureType(size_t feature_idx) const DAAL_C11_OVERRIDE
689  {
690  if ( _ddict.get() != NULL && _ddict->getNumberOfFeatures() > feature_idx )
691  {
692  const NumericTableFeature &f = (*_ddict)[feature_idx];
693  return f.featureType;
694  }
695  else
696  {
697  /* If no dictionary was set, all features are considered numeric */
698  return features::DAAL_CONTINUOUS;
699  }
700  }
701 
702  size_t getNumberOfCategories(size_t feature_idx) const DAAL_C11_OVERRIDE
703  {
704  if ( _ddict.get() != NULL && _ddict->getNumberOfFeatures() > feature_idx &&
705  getFeatureType(feature_idx) != features::DAAL_CONTINUOUS )
706  {
707  const NumericTableFeature &f = (*_ddict)[feature_idx];
708  return f.categoryNumber;
709  }
710  else
711  {
712  /* If no dictionary was set, all features are considered numeric */
713  return -1;
714  }
715  }
716 
720  virtual MemoryStatus getDataMemoryStatus() const { return _memStatus; }
721 
727  bool isNormalized(NormalizationType flag) const
728  {
729  return (_normalizationFlag == flag);
730  }
731 
737  NormalizationType setNormalizationFlag(NormalizationType flag)
738  {
739  NormalizationType oldValue = _normalizationFlag;
740  _normalizationFlag = flag;
741  return oldValue;
742  }
743 
749  DAAL_DEPRECATED services::SharedPtr<services::KernelErrorCollection> getErrors()
750  {
751  return _status.getCollection()->getErrors();
752  }
753 
757  virtual services::Status allocateBasicStatistics() DAAL_C11_OVERRIDE;
758 
762  virtual services::Status check(const char *description, bool checkDataAllocation = true) const DAAL_C11_OVERRIDE
763  {
764  if (getDataMemoryStatus() == notAllocated && checkDataAllocation)
765  {
766  return services::Status(services::Error::create(services::ErrorNullNumericTable, services::ArgumentName, description));
767  }
768 
769  if (getNumberOfColumns() == 0)
770  {
771  return services::Status(services::Error::create(services::ErrorIncorrectNumberOfColumns, services::ArgumentName, description));
772  }
773 
774  if (getNumberOfRows() == 0 && getDataMemoryStatus() != notAllocated)
775  {
776  return services::Status(services::Error::create(services::ErrorIncorrectNumberOfRows, services::ArgumentName, description));
777  }
778 
779  return services::Status();
780  }
781 
786  virtual services::Status assign(float value) {return assignImpl<float>(value);}
787 
792  virtual services::Status assign(double value) {return assignImpl<double>(value);}
793 
798  virtual services::Status assign(int value) {return assignImpl<int>(value);}
799 
806  template <typename DataType>
807  DataType getValue(size_t column, size_t row) const
808  {
809  services::Status status;
810  return getValueImpl<DataType>(column, row, status);
811  }
812 
820  template <typename DataType>
821  DataType getValue(size_t column, size_t row, services::Status & status) const
822  {
823  return getValueImpl<DataType>(column, row, status);
824  }
825 
826 public:
831  class BasicStatisticsDataCollection : public algorithms::Argument
832  {
833  public:
834  BasicStatisticsDataCollection() : algorithms::Argument(4) {}
835 
836  services::SharedPtr<NumericTable> get(BasicStatisticsId id)
837  {
838  return services::staticPointerCast<NumericTable, SerializationIface>(Argument::get(id));
839  }
840 
841  void set(BasicStatisticsId id, const services::SharedPtr<NumericTable> &value)
842  {
843  Argument::set(id, value);
844  }
845  };
846 
847  BasicStatisticsDataCollection basicStatistics;
849 protected:
850  NumericTableDictionaryPtr _ddict;
851 
852  size_t _obsnum;
853 
854  MemoryStatus _memStatus;
855  StorageLayout _layout;
856 
857  NormalizationType _normalizationFlag;
858 
859  services::Status _status;
860 
861 protected:
862 
863  NumericTable(NumericTableDictionaryPtr ddict, services::Status &st) :
864  _obsnum(0), _ddict(ddict), _layout(layout_unknown), _memStatus(notAllocated), _normalizationFlag(NumericTable::nonNormalized)
865  {
866  }
867 
868  NumericTable(size_t featnum, size_t obsnum, DictionaryIface::FeaturesEqual featuresEqual, services::Status &st):
869  _obsnum(obsnum), _layout(layout_unknown), _memStatus(notAllocated), _normalizationFlag(NumericTable::nonNormalized)
870  {
871  _ddict = NumericTableDictionary::create(featnum, featuresEqual, &st);
872  if (!st) return;
873  }
874 
875  virtual services::Status setNumberOfColumnsImpl(size_t ncol)
876  {
877  return _ddict->setNumberOfFeatures(ncol);
878  }
879 
880  virtual services::Status setNumberOfRowsImpl(size_t nrow)
881  {
882  _obsnum = nrow;
883  return services::Status();
884  }
885 
886  virtual services::Status allocateDataMemoryImpl(daal::MemType type = daal::dram) { return services::Status(); }
887 
888  virtual void freeDataMemoryImpl() {}
889 
890  template <typename DataType>
891  DataType getValueImpl(size_t column, size_t row, services::Status & status) const
892  {
893  const DataType defaultValue = 0;
894  if (!status)
895  return defaultValue;
896  BlockDescriptor<DataType> bd;
897  status |= const_cast<NumericTable *>(this)->getBlockOfColumnValues(column, row, 1, readOnly, bd);
898  if (!status)
899  return defaultValue;
900  const DataType v = *(bd.getBlockPtr());
901  status |= const_cast<NumericTable *>(this)->releaseBlockOfColumnValues(bd);
902  return v;
903  }
904 
905  virtual float getFloatValueImpl(size_t column, size_t row, services::Status & status) const
906  {
907  return getValueImpl<float>(column, row, status);
908  }
909 
910  virtual double getDoubleValueImpl(size_t column, size_t row, services::Status & status) const
911  {
912  return getValueImpl<double>(column, row, status);
913  }
914 
915  virtual int getIntValueImpl(size_t column, size_t row, services::Status & status) const
916  {
917  return getValueImpl<int>(column, row, status);
918  }
919 
921  template<typename Archive, bool onDeserialize>
922  services::Status serialImpl( Archive *arch )
923  {
924  arch->setSharedPtrObj( _ddict );
925 
926  arch->set( _obsnum );
927 
928  if( onDeserialize )
929  {
930  _memStatus = notAllocated;
931  }
932 
933  arch->set( _layout );
934 
935  return services::Status();
936  }
937 
938 private:
939  template <typename T>
940  services::Status assignImpl(T value)
941  {
942  size_t nRows = getNumberOfRows();
943  size_t nCols = getNumberOfColumns();
944  BlockDescriptor<T> block;
945  DAAL_CHECK(getBlockOfRows(0, nRows, writeOnly, block), services::ErrorMemoryAllocationFailed)
946  T* array = block.getBlockSharedPtr().get();
947  for(size_t i = 0; i < nCols * nRows; i++) {array[i] = value;}
948  releaseBlockOfRows(block);
949  return services::Status();
950  }
951 };
952 typedef services::SharedPtr<NumericTable> NumericTablePtr;
953 typedef services::SharedPtr<const NumericTable> NumericTableConstPtr;
954 
955 template <>
956 inline float NumericTable::getValue<float>(size_t column, size_t row) const
957 {
958  services::Status status;
959  return getFloatValueImpl(column, row, status);
960 }
961 
962 template <>
963 inline double NumericTable::getValue<double>(size_t column, size_t row) const
964 {
965  services::Status status;
966  return getDoubleValueImpl(column, row, status);
967 }
968 
969 template <>
970 inline int NumericTable::getValue<int>(size_t column, size_t row) const
971 {
972  services::Status status;
973  return getIntValueImpl(column, row, status);
974 }
975 
976 template <>
977 inline float NumericTable::getValue<float>(size_t column, size_t row, services::Status & status) const
978 {
979  return getFloatValueImpl(column, row, status);
980 }
981 
982 template <>
983 inline double NumericTable::getValue<double>(size_t column, size_t row, services::Status & status) const
984 {
985  return getDoubleValueImpl(column, row, status);
986 }
987 
988 template <>
989 inline int NumericTable::getValue<int>(size_t column, size_t row, services::Status & status) const
990 {
991  return getIntValueImpl(column, row, status);
992 }
993 
996 } // namespace interface1
997 using interface1::DenseNumericTableIface;
998 using interface1::NumericTable;
999 using interface1::NumericTablePtr;
1000 using interface1::NumericTableConstPtr;
1001 
1015 DAAL_EXPORT services::Status checkNumericTable(const NumericTable *nt, const char *description,
1016  const int unexpectedLayouts = 0, const int expectedLayouts = 0, size_t nColumns = 0, size_t nRows = 0,
1017  bool checkDataAllocation = true);
1024 template<typename DataType>
1025 DAAL_EXPORT daal::data_management::NumericTablePtr convertToHomogen(NumericTable &src, daal::MemType type = daal::dram);
1026 }
1027 } // namespace daal
1028 #endif
daal::data_management::interface1::NumericTableIface::setDictionary
virtual DAAL_DEPRECATED_VIRTUAL services::Status setDictionary(NumericTableDictionary *ddict)
Definition: numeric_table.h:345
daal::data_management::interface1::NumericTable::freeDataMemory
DAAL_DEPRECATED_VIRTUAL void freeDataMemory() DAAL_C11_OVERRIDE
Definition: numeric_table.h:678
daal::data_management::interface1::NumericTableIface::getDataLayout
virtual StorageLayout getDataLayout() const =0
daal::data_management::interface1::BlockDescriptor::getRWFlag
size_t getRWFlag() const
Definition: numeric_table.h:218
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::BlockDescriptor::freeBuffer
void freeBuffer()
Definition: numeric_table.h:231
daal::data_management::interface1::BlockDescriptor::getBlockSharedPtr
services::SharedPtr< DataType > getBlockSharedPtr() const
Definition: numeric_table.h:82
daal::data_management::interface1::NumericTable::getValue
DataType getValue(size_t column, size_t row) const
Definition: numeric_table.h:807
daal::data_management::interface1::NumericTableIface::notAllocated
Definition: numeric_table.h:274
daal::data_management::interface1::BlockDescriptor::getBlockPtr
DataType * getBlockPtr() const
Definition: numeric_table.h:69
daal
Definition: algorithm_base_common.h:31
daal::data_management::interface1::NumericTable::NumericTable
NumericTable(NumericTableDictionaryPtr ddict)
Definition: numeric_table.h:598
daal::data_management::interface1::BlockDescriptor::getAdditionalBufferPtr
void * getAdditionalBufferPtr() const
Definition: numeric_table.h:224
daal::data_management::interface1::NumericTable::assign
virtual services::Status assign(double value)
Definition: numeric_table.h:792
daal::data_management::interface1::BlockDescriptor::getNumberOfColumns
size_t getNumberOfColumns() const
Definition: numeric_table.h:95
daal::data_management::interface1::NumericTableIface::allocateDataMemory
virtual DAAL_DEPRECATED_VIRTUAL services::Status allocateDataMemory(daal::MemType type=daal::dram)=0
daal::data_management::interface1::NumericTableIface::NormalizationType
NormalizationType
Enumeration to specify types of normalization.
Definition: numeric_table.h:315
daal::data_management::interface1::NumericTableIface::standardScoreNormalized
Definition: numeric_table.h:318
daal::data_management::interface1::NumericTableIface::resetDictionary
virtual DAAL_DEPRECATED_VIRTUAL services::Status resetDictionary()
Definition: numeric_table.h:364
daal::data_management::convertToHomogen
DAAL_EXPORT daal::data_management::NumericTablePtr convertToHomogen(NumericTable &src, daal::MemType type=daal::dram)
daal::data_management::interface1::NumericTable::getNumberOfCategories
size_t getNumberOfCategories(size_t feature_idx) const DAAL_C11_OVERRIDE
Definition: numeric_table.h:702
daal::data_management::interface1::NumericTableIface::getDictionary
virtual DAAL_DEPRECATED_VIRTUAL NumericTableDictionary * getDictionary() const =0
daal::data_management::interface1::NumericTable::resetDictionary
virtual DAAL_DEPRECATED_VIRTUAL services::Status resetDictionary() DAAL_C11_OVERRIDE
Definition: numeric_table.h:635
daal::data_management::interface1::DenseNumericTableIface::releaseBlockOfColumnValues
virtual services::Status releaseBlockOfColumnValues(BlockDescriptor< double > &block)=0
daal::data_management::interface1::NumericTable::getDictionarySharedPtr
virtual NumericTableDictionaryPtr getDictionarySharedPtr() const DAAL_C11_OVERRIDE
Definition: numeric_table.h:633
daal::services::ErrorIncorrectNumberOfColumns
Definition: error_indexes.h:114
daal::services::ErrorMemoryAllocationFailed
Definition: error_indexes.h:147
daal::data_management::interface1::NumericTable::getNumberOfColumns
size_t getNumberOfColumns() const
Definition: numeric_table.h:652
daal::dram
Definition: daal_defines.h:147
daal::data_management::interface1::NumericTableIface::check
virtual services::Status check(const char *description, bool checkDataAllocation=true) const =0
daal::data_management::interface1::NumericTable::getFeatureType
features::FeatureType getFeatureType(size_t feature_idx) const DAAL_C11_OVERRIDE
Definition: numeric_table.h:688
daal::data_management::interface1::NumericTable::assign
virtual services::Status assign(float value)
Definition: numeric_table.h:786
daal::data_management::interface1::NumericTable::setNumberOfColumns
DAAL_DEPRECATED_VIRTUAL services::Status setNumberOfColumns(size_t ncol) DAAL_C11_OVERRIDE
Definition: numeric_table.h:663
daal::data_management::interface1::NumericTableIface::userAllocated
Definition: numeric_table.h:275
daal_defines.h
daal::data_management::interface1::NumericTableIface::FeatureBasicStatistics
FeatureBasicStatistics
Enumeration to specify feature-specific estimates of basic statistics stored.
Definition: numeric_table.h:306
daal::data_management::interface1::NumericTable::BasicStatisticsDataCollection
Basic statistics for each column of original Numeric Table.
Definition: numeric_table.h:831
daal::data_management::interface1::NumericTable::NumericTable
DAAL_DEPRECATED NumericTable(NumericTableDictionary *ddict)
Definition: numeric_table.h:585
daal::data_management::interface1::BlockDescriptor::resizeBuffer
bool resizeBuffer(size_t nColumns, size_t nRows, size_t auxMemorySize=0)
Definition: numeric_table.h:151
daal::data_management::interface1::NumericTableIface::minimum
Definition: numeric_table.h:296
daal::data_management::interface1::BlockDescriptor::setPtr
void setPtr(services::SharedPtr< byte > *pPtr, byte *rawPtr, size_t nColumns, size_t nRows)
Definition: numeric_table.h:135
daal::data_management::interface1::NumericTable::assign
virtual services::Status assign(int value)
Definition: numeric_table.h:798
daal::data_management::interface1::NumericTable::isNormalized
bool isNormalized(NormalizationType flag) const
Definition: numeric_table.h:727
daal::data_management::interface1::NumericTable::setNormalizationFlag
NormalizationType setNormalizationFlag(NormalizationType flag)
Definition: numeric_table.h:737
daal::data_management::interface1::NumericTableIface::counters
Definition: numeric_table.h:308
daal::data_management::interface1::NumericTable::getDictionary
virtual DAAL_DEPRECATED_VIRTUAL NumericTableDictionary * getDictionary() const DAAL_C11_OVERRIDE
Definition: numeric_table.h:631
daal::data_management::interface1::NumericTable::allocateDataMemory
DAAL_DEPRECATED_VIRTUAL services::Status allocateDataMemory(daal::MemType type=daal::dram) DAAL_C11_OVERRIDE
Definition: numeric_table.h:673
daal::data_management::interface1::NumericTableIface::nonNormalized
Definition: numeric_table.h:317
daal::services::daal_malloc
DAAL_EXPORT void * daal_malloc(size_t size, size_t alignment=DAAL_MALLOC_DEFAULT_ALIGNMENT)
daal::data_management::interface1::NumericTableIface::MemoryStatus
MemoryStatus
Enumeration to specify the status of memory related to the Numeric Table.
Definition: numeric_table.h:272
daal::data_management::interface1::NumericTable
Class for a data management component responsible for representation of data in the numeric format...
Definition: numeric_table.h:575
daal::data_management::interface1::NumericTableIface::StorageLayout
StorageLayout
Storage layouts that may need to be supported.
Definition: numeric_table.h:326
daal::data_management::interface1::NumericTableIface::doNotAllocate
Definition: numeric_table.h:285
daal::data_management::interface1::NumericTable::resize
virtual services::Status resize(size_t nrows) DAAL_C11_OVERRIDE
Definition: numeric_table.h:637
daal::data_management::interface1::NumericTableIface::resize
virtual services::Status resize(size_t nrows)=0
daal::data_management::interface1::NumericTableIface::getNumberOfCategories
virtual size_t getNumberOfCategories(size_t feature_idx) const =0
daal::data_management::interface1::NumericTableIface::getDictionarySharedPtr
virtual NumericTableDictionaryPtr getDictionarySharedPtr() const =0
daal::data_management::interface1::NumericTableIface::maximum
Definition: numeric_table.h:297
daal::data_management::checkNumericTable
DAAL_EXPORT services::Status checkNumericTable(const NumericTable *nt, const char *description, const int unexpectedLayouts=0, const int expectedLayouts=0, size_t nColumns=0, size_t nRows=0, bool checkDataAllocation=true)
daal::data_management::interface1::NumericTable::_ddict
NumericTableDictionaryPtr _ddict
Definition: numeric_table.h:850
daal::data_management::interface1::NumericTableIface::setNumberOfColumns
virtual DAAL_DEPRECATED_VIRTUAL services::Status setNumberOfColumns(size_t ncol)=0
daal::data_management::interface1::NumericTableIface::BasicStatisticsId
BasicStatisticsId
Enumeration to specify estimates of basic statistics stored.
Definition: numeric_table.h:294
daal::data_management::interface1::NumericTable::getErrors
DAAL_DEPRECATED services::SharedPtr< services::KernelErrorCollection > getErrors()
Definition: numeric_table.h:749
daal::data_management::interface1::NumericTable::NumericTable
NumericTable(size_t featnum, size_t obsnum, DictionaryIface::FeaturesEqual featuresEqual=DictionaryIface::notEqual)
Definition: numeric_table.h:613
daal::data_management::interface1::NumericTable::getValue
DataType getValue(size_t column, size_t row, services::Status &status) const
Definition: numeric_table.h:821
daal::data_management::interface1::NumericTableIface::doAllocate
Definition: numeric_table.h:287
daal::data_management::interface1::BlockDescriptor::reset
void reset()
Definition: numeric_table.h:106
daal::services::ErrorIncorrectNumberOfRows
Definition: error_indexes.h:115
daal::data_management::interface1::NumericTable::getNumberOfRows
size_t getNumberOfRows() const
Definition: numeric_table.h:661
daal::data_management::interface1::BlockDescriptor
Base class that manages buffer memory for read/write operations required by numeric tables...
Definition: numeric_table.h:55
daal::data_management::interface1::DenseNumericTableIface
Abstract interface class for a data management component responsible for accessing data in the numeri...
Definition: numeric_table.h:450
daal::data_management::interface1::DictionaryIface::FeaturesEqual
FeaturesEqual
Enumeration to specify whether the Data Dictionary contains equal features.
Definition: data_dictionary.h:148
daal::algorithms::math::abs::value
Definition: abs_types.h:86
daal::data_management::interface1::NumericTableIface::notAllocate
Definition: numeric_table.h:286
daal::data_management::interface1::DenseNumericTableIface::releaseBlockOfRows
virtual services::Status releaseBlockOfRows(BlockDescriptor< double > &block)=0
daal::data_management::interface1::BlockDescriptor::getNumberOfRows
size_t getNumberOfRows() const
Definition: numeric_table.h:101
daal::data_management::interface1::NumericTableIface::internallyAllocated
Definition: numeric_table.h:276
daal::data_management::interface1::NumericTableIface::sum
Definition: numeric_table.h:298
daal::data_management::interface1::NumericTable::getDataLayout
StorageLayout getDataLayout() const DAAL_C11_OVERRIDE
Definition: numeric_table.h:683
daal::data_management::interface1::BlockDescriptor::getRowsOffset
size_t getRowsOffset() const
Definition: numeric_table.h:212
daal::data_management::interface1::NumericTableIface::setNumberOfRows
virtual DAAL_DEPRECATED_VIRTUAL services::Status setNumberOfRows(size_t nrow)=0
daal::data_management::interface1::Dictionary::create
static services::SharedPtr< Dictionary > create(size_t nfeat, FeaturesEqual featuresEqual=notEqual, services::Status *stat=NULL)
Definition: data_dictionary.h:186
daal::data_management::interface1::NumericTableIface::sumSquares
Definition: numeric_table.h:299
daal::services::ErrorNullNumericTable
Definition: error_indexes.h:113
daal::data_management::interface1::BlockDescriptor::setDetails
void setDetails(size_t columnIdx, size_t rowIdx, int rwFlag)
Definition: numeric_table.h:195
daal::data_management::interface1::NumericTableIface::getFeatureType
virtual features::FeatureType getFeatureType(size_t feature_idx) const =0
daal::data_management::interface1::NumericTable::setDictionary
virtual DAAL_DEPRECATED_VIRTUAL services::Status setDictionary(NumericTableDictionary *ddict) DAAL_C11_OVERRIDE
Definition: numeric_table.h:625
daal::data_management::interface1::DenseNumericTableIface::getBlockOfColumnValues
virtual services::Status getBlockOfColumnValues(size_t feature_idx, size_t vector_idx, size_t value_num, ReadWriteMode rwflag, BlockDescriptor< double > &block)=0
daal::data_management::interface1::NumericTableIface
Abstract interface class for a data management component responsible for representation of data in th...
Definition: numeric_table.h:263
daal::data_management::interface1::NumericTableIface::minMaxNormalized
Definition: numeric_table.h:319
daal::data_management::interface1::BlockDescriptor::setPtr
void setPtr(DataType *ptr, size_t nColumns, size_t nRows)
Definition: numeric_table.h:122
daal::data_management::interface1::SerializationIface
Abstract interface class that defines the interface for serialization and deserialization.
Definition: data_serialize.h:50
daal::data_management::interface1::BlockDescriptor::getColumnsOffset
size_t getColumnsOffset() const
Definition: numeric_table.h:206
daal::data_management::interface1::NumericTableIface::freeDataMemory
virtual DAAL_DEPRECATED_VIRTUAL void freeDataMemory()=0
daal::data_management::interface1::NumericTableFeature
Data structure describes the Numeric Table feature.
Definition: data_dictionary.h:51
daal::services::ArgumentName
Definition: error_indexes.h:50
daal::data_management::interface1::NumericTable::getDataMemoryStatus
virtual MemoryStatus getDataMemoryStatus() const
Definition: numeric_table.h:720
daal::data_management::interface1::NumericTableIface::allocateBasicStatistics
virtual services::Status allocateBasicStatistics()=0
daal::MemType
MemType
Definition: daal_defines.h:145
daal::data_management::interface1::DenseNumericTableIface::getBlockOfRows
virtual services::Status getBlockOfRows(size_t vector_idx, size_t vector_num, ReadWriteMode rwflag, BlockDescriptor< double > &block)=0
daal::data_management::interface1::NumericTable::setNumberOfRows
DAAL_DEPRECATED_VIRTUAL services::Status setNumberOfRows(size_t nrow) DAAL_C11_OVERRIDE
Definition: numeric_table.h:668
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:161

For more complete information about compiler optimizations, see our Optimization Notice.