View full-text article in PMC Sensors (Basel). 2020 Nov 6;20(21):6335. doi: 10.3390/s20216335 Search in PMC Search in PubMed View in NLM Catalog Add to search Copyright and License information © 2020 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/). PMC Copyright notice Algorithm 1 FCM algorithm in GPU. 1:init_u<<<bl,th>>>(states,fuzzy_u,clusters,rows); 2:forstep=1;i<MAX_STEPS;i=i+1do 3: cublasDgemm_configurationu(fuzzy_u,mf,vector_u_transform,clusters,rows,columns); 4: numerator_Centroidi<<<bl,th>>>(numerator,mf,columns,rows,clusters) 5: determinator_Centroidi<<<bl,th>>>(denominator,vector_u_transform,columns,rows,clusters) 6: obtain_centers<<<bl,th>>>(center,numerator,denominator,mf,clusters,rows,columns) 7: distance_matrix<<<bl,th>>>(distance,center,datamatrix,rows,columns) 8: Error_stepi=thrust::reduce(mf); 9: if (Error_stepi−Error_step_(i−1))<error then 10: break; 11: end if 12: new_u_for_next_iteration<<<bl,th>>>(fuzzy_u,distance,rows,columns,clusters); 13:end for 14:cudaMemcpy (u_host,fuzzy_u,cluster∗rows∗sizeof(FLOAT), cudaMemcpyDeviceToHost);