Example #1
0
 void Optim::setMode(Mode mode)
 {
     m_mode = mode;
     if(m_mode == Basic)
     {
         for(unsigned int i = 0; i < m_number_of_harmonics; i++)
         {
             m_harmonics[i] = 1.;
         }
     }
     else if (m_mode == MaxRe)
     {
         for(unsigned int i = 0; i < m_number_of_harmonics; i++)
         {
             m_harmonics[i] = cos(fabs(getHarmonicBand(i)) * HOA_PI / (2 * m_order + 2));;
         }
     }
     else
     {
         long double gain = ((m_order + 1) * (m_order + 1)) / (2 * m_order + 1);
         for(unsigned int i = 0; i < m_number_of_harmonics; i++)
         {
             m_harmonics[i] = (long double)((long double)factorial(m_order) * (long double)factorial(m_order + 1.)) / (long double)((long double)factorial(m_order + getHarmonicBand(i) + 1.) * (long double)factorial(m_order - fabs(getHarmonicBand(i)))) * gain;
         }
     }
 }
Example #2
0
 void Optim::setMode(Mode mode)
 {
     long double temp1;
     long double temp2;
     m_mode = mode;
     if(m_mode == Basic)
     {
         for(unsigned int i = 0; i < m_number_of_harmonics; i++)
         {
             m_harmonics[i] = 1.;
         }
     }
     else if (m_mode == MaxRe)
     {
         for(unsigned int i = 0; i < m_number_of_harmonics; i++)
         {
             m_harmonics[i] = cos(fabs((double)getHarmonicBand(i)) * HOA_PI / (double)(2. * m_order + 2));
         }
     }
     else
     {
         for(unsigned int i = 0; i < m_number_of_harmonics; i++)
         {
             temp1 = (long double)factorial(m_order) / (long double)factorial(m_order + getHarmonicBand(i) + 1.);
             temp2 = (long double)factorial(m_order + 1.) / (long double)factorial(m_order - fabs(getHarmonicBand(i)));
             m_harmonics[i] = temp1 * temp2;
         }
     }
 }