FastMath.cpp 803 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /**
  2. * @file FastMath.cpp
  3. * @brief lookup tables and more
  4. * @author Erik Rodner
  5. * @date 07/31/2008
  6. */
  7. #include "FastMath.h"
  8. #include <stdio.h>
  9. #include <math.h>
  10. #include <assert.h>
  11. using namespace NICE;
  12. using namespace std;
  13. FastMath::~FastMath ()
  14. {
  15. if ( sqrtTable != NULL )
  16. delete [] sqrtTable;
  17. if ( atan2Table != NULL )
  18. delete [] atan2Table;
  19. }
  20. FastMath::FastMath()
  21. {
  22. sqrtTable = new double[sqrtTableMaximum];
  23. for ( int j = 0 ; j < sqrtTableMaximum; j++ )
  24. sqrtTable[j] = sqrt((double)j);
  25. atan2Table = new double[atan2TableMaximum];
  26. long k = 0 ;
  27. for ( int i = -gradientMaximum ; i <= gradientMaximum ; i++ )
  28. for ( int j = -gradientMaximum ; j <= gradientMaximum ; j++,k++ )
  29. atan2Table[k] = atan2((double)i,(double)j);
  30. assert ( k == atan2TableMaximum );
  31. }