| @@ -69,10 +69,10 @@ protected: | |||||
| divider += decimal_point[i]; | divider += decimal_point[i]; | ||||
| } | } | ||||
| T norm = sqrt((float)N); | |||||
| T sqr_norm = N; | |||||
| result += (1 - 2 * floor_coeff / (norm * norm)) * this->m_samples[floor_point]; | |||||
| divider += (1 - 2 * floor_coeff / (norm * norm)); | |||||
| result += (1 - 2 * floor_coeff / sqr_norm) * this->m_samples[floor_point]; | |||||
| divider += (1 - 2 * floor_coeff / sqr_norm); | |||||
| return result / divider; | return result / divider; | ||||
| } | } | ||||
| @@ -130,6 +130,9 @@ protected: | |||||
| inline void InitBase() | inline void InitBase() | ||||
| { | { | ||||
| this->m_base.SetSize(vec_t<int, 2>{N, N}); | |||||
| this->m_base_inverse.SetSize(vec_t<int, 2>{N, N}); | |||||
| for (int i = 0 ; i < N ; ++i) | for (int i = 0 ; i < N ; ++i) | ||||
| { | { | ||||
| for (int j = i ; j < N ; ++j) | for (int j = i ; j < N ; ++j) | ||||
| @@ -140,8 +143,8 @@ protected: | |||||
| } | } | ||||
| } | } | ||||
| vec_t<vec_t<T, N>, N> m_base; | |||||
| vec_t<vec_t<T, N>, N> m_base_inverse; | |||||
| arraynd<2, T> m_base; | |||||
| arraynd<2, T> m_base_inverse; | |||||
| arraynd<N, T> m_samples; | arraynd<N, T> m_samples; | ||||
| }; | }; | ||||