point_recovery-C11.c 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /*
  2. * point_recovery.c
  3. *
  4. * Created on: Feb 14, 2014
  5. * Author: havock
  6. */
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include <stdint.h>
  10. #include <iterative_point_recovery.clh>
  11. int32_t main(void) {
  12. flt32_t pCenters[6]={ -0.976f, 0.401f, /* the first centre */
  13. -0.251f, -0.506f, /* the second centre */
  14. 0.368f, 0.327f }, /* the third centre */
  15. pRadiuses[3]={ 0.98f, 0.653f, 0.816f },/* radiuses */
  16. pResult[2]={ 0.0f, 0.0f }, /* result */
  17. Quality=0.0; /* quality */
  18. const _PTRC_INDAT in={
  19. .u64D=2ul, /* dimensionality */
  20. .pfCnt=pCenters, .pfRds=pRadiuses,
  21. .u64NofS=3ul /* number of known spheres */ };
  22. int32_t err=0; /* error */
  23. {
  24. uint64_t i,j;
  25. printf("At the beginning were\n");
  26. for(i=0ul;i<in.u64NofS;i++) {
  27. printf("\tc%lu={ ",i);
  28. for(j=0ul;j<in.u64D;j++) printf("%f ",in.pfCnt[i*in.u64D+j]);
  29. printf("}\n");
  30. }
  31. printf("\tR={ ");
  32. for(i=0ul;i<in.u64NofS;i++) printf("%f ",in.pfRds[i]);
  33. printf("}\n");
  34. }
  35. err=_ptrc_recoverPoint(pResult,&Quality,in,in.u64NofS); /* function call */
  36. if(!err) {
  37. uint64_t i;
  38. printf("and the result is\n\tp={ ");
  39. for(i=0ul;i<in.u64D;i++) printf("%f ",pResult[i]);
  40. printf("}; Lambda = %f\n",Quality);
  41. } else printf("Error %d\n",err);
  42. return(0);
  43. }