| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #include <iterative_point_recovery.clh>
- #define _GDM__PRIVATE_MEM_HEAP_SZ_BYTES 65536
- __kernel void krPointRecovery(__global int32_t* const d_pi32KrErr) {
- uint64_t idx=get_global_id(0);
- if(idx<1ul) {
- _GDM___private_heap_init();
- __private flt32_t pCenters[6]={-0.976f, 0.401f, /* the first centre */
- -0.251f,-0.506f, /* the second centre */
- 0.368f, 0.327f },/* the third centre */
- pRadiuses[3]={ 0.98f, 0.653f, 0.816f }, /* radiuses */
- pResult[2]={ 0.0f, 0.0f }, /* result */
- Quality=0.0; /* quality */
- __private const _PTRC_INDAT in={
- .u64D=2ul, /* dimensionality */
- .pfCnt=pCenters, .pfRds=pRadiuses,
- .u64NofS=3ul /* number of known spheres */ };
- __private int32_t err=0; /* error */
- {
- __private uint64_t i,j;
- printf("At the beginning were\n");
- for(i=0ul;i<in.u64NofS;i++) {
- printf("\tc%lu={ ",i);
- for(j=0ul;j<in.u64D;j++) printf("%f ",in.pfCnt[i*in.u64D+j]);
- printf("}\n");
- }
- printf("\tR={ ");
- for(i=0ul;i<in.u64NofS;i++) printf("%f ",in.pfRds[i]);
- printf("}\n");
- }
- err=_ptrc_recoverPoint(pResult,&Quality,in,in.u64NofS,
- _GDM_heap_ARG(__private));
- if(!err) {
- __private uint64_t i;
- printf("and the result is\n\tp={ ");
- for(i=0ul;i<in.u64D;i++) printf("%f ",pResult[i]);
- printf("}; Lambda = %f\n",Quality);
- } else { printf("Error %d\n",err); *d_pi32KrErr=err; return; }
- }
- return;
- }
|