CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Cordic.h
Go to the documentation of this file.
1 #ifndef Cordic_H
2 #define Cordic_H
3 
4 #include <vector>
5 #include <stdint.h>
6 
7 class Cordic
8 {
9  public:
10  Cordic( const uint32_t& aPhiScale , const uint32_t& aMagnitudeBits , const uint32_t& aSteps );
11  virtual ~Cordic();
12 
13  void operator() ( int32_t aX , int32_t aY , int32_t& aPhi , uint32_t& aMagnitude );
14 
15  double NormalizePhi( const uint32_t& aPhi);
16  double NormalizeMagnitude( const uint32_t& aMagnitude );
17  int32_t IntegerizeMagnitude( const double& aMagnitude );
18 
19  private:
20  uint32_t tower( const double& aRadians );
21 
22  private:
23  uint32_t mPhiScale;
24  uint32_t mMagnitudeScale;
25  uint32_t mMagnitudeBits;
26  uint32_t mSteps;
28  std::vector<uint32_t> mRotations;
29 
30  const double mPi;
31 };
32 
33 #endif
virtual ~Cordic()
Definition: Cordic.cc:22
uint32_t mMagnitudeBits
Definition: Cordic.h:25
int32_t IntegerizeMagnitude(const double &aMagnitude)
Definition: Cordic.cc:34
uint32_t mPhiScale
Definition: Cordic.h:23
double NormalizeMagnitude(const uint32_t &aMagnitude)
Definition: Cordic.cc:29
const double mPi
Definition: Cordic.h:30
uint32_t mSteps
Definition: Cordic.h:26
Definition: Cordic.h:7
void operator()(int32_t aX, int32_t aY, int32_t &aPhi, uint32_t &aMagnitude)
Definition: Cordic.cc:44
uint32_t tower(const double &aRadians)
Definition: Cordic.cc:39
Cordic(const uint32_t &aPhiScale, const uint32_t &aMagnitudeBits, const uint32_t &aSteps)
Definition: Cordic.cc:9
uint32_t mMagnitudeScale
Definition: Cordic.h:24
std::vector< uint32_t > mRotations
Definition: Cordic.h:28
double NormalizePhi(const uint32_t &aPhi)
Definition: Cordic.cc:24
uint32_t mMagnitudeRenormalization
Definition: Cordic.h:27