From 76da4d9b843c44e3e7a037eb75249e94fa706a23 Mon Sep 17 00:00:00 2001 From: Matias De lellis Date: Tue, 14 Apr 2020 10:45:13 -0300 Subject: [PATCH] Multiply directly instead of using pow ($number, 2); This small optimization allows us to improve from: OLD php: 0.012100038051605 Sec. New native: 0.0096198790073395 Sec. (This is already 20 percent faster) ..to: OLD php: 0.012276937961578 Sec. New native: 0.0022540950775146 Sec. What is 80 percent faster than our PHP class. --- src/vector.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vector.cc b/src/vector.cc index 7a590fb..460d916 100644 --- a/src/vector.cc +++ b/src/vector.cc @@ -39,7 +39,7 @@ PHP_FUNCTION(dlib_vector_length) elem_x = zend_hash_index_find(Z_ARRVAL_P(x_arg), i); elem_y = zend_hash_index_find(Z_ARRVAL_P(y_arg), i); - sum += pow(Z_DVAL_P(elem_x) - Z_DVAL_P(elem_y), 2); + sum += (Z_DVAL_P(elem_x) - Z_DVAL_P(elem_y))*(Z_DVAL_P(elem_x) - Z_DVAL_P(elem_y)); } RETURN_DOUBLE(sqrt(sum));