Browse Source

simplex_interpolator: refactoring a bit

undefined
Guillaume Bittoun Sam Hocevar <sam@hocevar.net> 10 years ago
parent
commit
5ebce1c0c8
1 changed files with 8 additions and 5 deletions
  1. +8
    -5
      src/lol/math/simplex_interpolator.h

+ 8
- 5
src/lol/math/simplex_interpolator.h View File

@@ -69,10 +69,10 @@ protected:
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;
}
@@ -130,6 +130,9 @@ protected:

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 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;
};


Loading…
Cancel
Save