namespace internal¶
// structs template <typename DT> struct dataTypeConverter template <> struct maxMinValue <double> template <> struct maxMinValue <float> template <typename DT> struct maxMinValue // unions template <typename DT> union conv template <> union conv <float> template <> union conv <double> // global variables const int NUMS
computingDistance¶
#include "xf_data_analytics/clustering/kmeansPredict.hpp"
template < typename DT, int Dim, int Kcluster, int uramDepth, int KU, int DV > void computingDistance ( hls::stream <ap_uint <sizeof (DT)*8>> sampleStrm [DV], hls::stream <bool>& endSampleStrm, ap_uint <sizeof (DT)*8*DV> centers [KU][uramDepth], const int dims, const int kcluster, hls::stream <DT> distStrm [KU], hls::stream <bool>& eDistStrm )
computingDistance calculates distance of each sample and all centers.
Parameters:
DT  data type, supporting float and double 
Dim  the maximum number of dimensions,dynamic number of dimension should be not greater than the maximum. 
Kcluster  the maximum number of cluster,dynamic number of cluster should be not greater than the maximum. 
uramDepth  the depth of uram where centers are stored. uramDepth should be not less than ceiling(Kcluster/KU)

KU  unroll factor of Kcluster, KU centers are took part in calculating distances concurrently with one sample. After Kcluster/KU+1 times at most, ouput the minimum distance of a sample and Kcluster centers. 
DV  unroll factor of Dim, DV elements in a center are took part in calculating distances concurrently with one sample. 
sampleStrm  input sample streams 
endSampleStrm  the end flag of sample stream 
centers  an array stored centers 
dims  the number of dimensions 
kcluster  the number of clusters 
distStrm  distance streams 
eDistStrm  the end flag of distance stream 
minDist¶
#include "xf_data_analytics/clustering/kmeansPredict.hpp"
template < typename DT, int Dim, int Kcluster, int KU > void minDist ( hls::stream <DT> distStrm [KU], hls::stream <bool>& eDistStrm, const int kcluster, hls::stream <ap_uint <32>>& tagStrm, hls::stream <bool>& eTagStrm )
minDist calculates the cluster index according to the minimum distance of each sample and all centers.
Parameters:
DT  data type, supporting float and double 
Dim  the maximum number of dimensions,dynamic number of dimension should be not greater than the maximum. 
Kcluster  the maximum number of cluster,dynamic number of cluster should be not greater than the maximum. 
uramDepth  the depth of uram where centers are stored. uramDepth should be not less than ceiling(Kcluster/KU)

KU  unroll factor of Kcluster, KU centers are took part in calculating distances concurrently with one sample. After Kcluster/KU+1 times at most, ouput the minimum distance of a sample and Kcluster centers. 
DV  unroll factor of Dim, DV elements in a center are took part in calculating distances concurrently with one sample. 
distStrm  distance streams 
eDistStrm  the end flag of distance stream 
kcluster  the number of clusters 
tagStrm  tag stream, label a cluster ID for each sample 
eTagStrm  end flag of tag stream 
closestCenter¶
#include "xf_data_analytics/clustering/kmeansPredict.hpp"
template < typename DT, int Dim, int Kcluster, int uramDepth, int KU, int DV > void closestCenter ( hls::stream <ap_uint <sizeof (DT)*8>> sampleStrm [DV], hls::stream <bool>& endSampleStrm, ap_uint <sizeof (DT)*8*DV> centers [KU][uramDepth], const int dims, const int kcluster, hls::stream <ap_uint <32>>& tagStrm, hls::stream <bool>& eTagStrm )
closetCenters computes the cluster index according to the minimum distance of each sample and all centers.
Parameters:
DT  data type, supporting float and double 
Dim  the maximum number of dimensions,dynamic number of dimension should be not greater than the maximum. 
Kcluster  the maximum number of cluster,dynamic number of cluster should be not greater than the maximum. 
uramDepth  the depth of uram where centers are stored. uramDepth should be not less than ceiling(Kcluster/KU)

KU  unroll factor of Kcluster, KU centers are took part in calculating distances concurrently with one sample. After Kcluster/KU+1 times at most, ouput the minimum distance of a sample and Kcluster centers. 
DV  unroll factor of Dim, DV elements in a center are took part in calculating distances concurrently with one sample. 
sampleStrm  input sample streams 
endSampleStrm  the end flag of sample stream 
centers  an array stored centers 
dims  the number of dimensions 
kcluster  the number of clusters 
tagStrm  tag stream, label a cluster ID for each sample 
endTagStrm  end flag of tag stream 
kMeansPredictImp¶
#include "xf_data_analytics/clustering/kmeansPredict.hpp"
template < typename DT, int Dim, int Kcluster, int uramDepth, int KU, int DV > void kMeansPredictImp ( hls::stream <ap_uint <sizeof (DT)*8>> sampleStrm [DV], hls::stream <bool>& endSampleStrm, ap_uint <sizeof (DT)*8*DV> centers [KU][uramDepth], const int dims, const int kcluster, hls::stream <ap_uint <32>>& tagStrm, hls::stream <bool>& endTagStrm )
kMeansPredict predicts cluster index for each sample.
Parameters:
DT  data type, supporting float and double 
Dim  the maximum number of dimensions,dynamic number of dimension should be not greater than the maximum. 
Kcluster  the maximum number of cluster,dynamic number of cluster should be not greater than the maximum. 
uramDepth  the depth of uram where centers are stored. uramDepth should be not less than ceiling(Kcluster/KU)

KU  unroll factor of Kcluster, KU centers are took part in calculating distances concurrently with one sample. After Kcluster/KU+1 times at most, ouput the minimum distance of a sample and Kcluster centers. 
DV  unroll factor of Dim, DV elements in a center are took part in calculating distances concurrently with one sample. 
sampleStrm  input sample streams, a sample needs ceiling(dims/DV) times to read. 
endSampleStrm  the end flag of sample stream. 
centers  an array stored centers, user should partition dim=1 in its defination. 
dims  the number of dimensions. 
kcluster  the number of clusters. 
tagStrm  tag stream, label a cluster ID for each sample. 
endTagStrm  end flag of tag stream. 