-static struct Polynomial bezier_term_cache[4];
-static bool done_cache_init;
-
-void
-init_polynomial_cache ()
-{
- for (int j = 0; j <= 3; j++)
- bezier_term_cache[j]
- = binomial_coefficient_3[j]
- * Polynomial::power (j, Polynomial (0, 1))
- * Polynomial::power (3 - j, Polynomial (1, -1));
- done_cache_init = true;
-}
+struct Polynomial_cache {
+ Polynomial terms_[4];
+ Polynomial_cache ()
+ {
+ for (int j = 0; j <= 3; j++)
+ terms_[j]
+ = binomial_coefficient_3[j]
+ * Polynomial::power (j, Polynomial (0, 1))
+ * Polynomial::power (3 - j, Polynomial (1, -1));
+ }
+};
+
+static Polynomial_cache poly_cache;