dtocanon.c 431 B

1234567891011121314151617181920212223242526272829303132333435
  1. #include "limbo.h"
  2. void
  3. dtocanon(double f, ulong v[])
  4. {
  5. union { double d; ulong ul[2]; } a;
  6. a.d = 1.;
  7. if(a.ul[0]){
  8. a.d = f;
  9. v[0] = a.ul[0];
  10. v[1] = a.ul[1];
  11. }else{
  12. a.d = f;
  13. v[0] = a.ul[1];
  14. v[1] = a.ul[0];
  15. }
  16. }
  17. double
  18. canontod(ulong v[2])
  19. {
  20. union { double d; unsigned long ul[2]; } a;
  21. a.d = 1.;
  22. if(a.ul[0]) {
  23. a.ul[0] = v[0];
  24. a.ul[1] = v[1];
  25. }
  26. else {
  27. a.ul[1] = v[0];
  28. a.ul[0] = v[1];
  29. }
  30. return a.d;
  31. }