aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--vespalib/src/tests/approx/approx_test.cpp3
-rw-r--r--vespalib/src/tests/eval/compiled_function/compiled_function_test.cpp3
-rw-r--r--vespalib/src/tests/executor/stress_test.cpp5
-rw-r--r--vespalib/src/tests/random/friendfinder.cpp18
-rw-r--r--vespalib/src/vespa/vespalib/eval/eval_spec.cpp42
-rw-r--r--vespalib/src/vespa/vespalib/eval/llvm_wrapper.cpp3
-rw-r--r--vespalib/src/vespa/vespalib/eval/operation.cpp41
-rw-r--r--vespalib/src/vespa/vespalib/util/approx.h6
-rw-r--r--vespalib/src/vespa/vespalib/util/random.cpp17
-rw-r--r--vespalib/src/vespa/vespalib/util/random.h2
10 files changed, 72 insertions, 68 deletions
diff --git a/vespalib/src/tests/approx/approx_test.cpp b/vespalib/src/tests/approx/approx_test.cpp
index 8181669db60..d9e89ffff7a 100644
--- a/vespalib/src/tests/approx/approx_test.cpp
+++ b/vespalib/src/tests/approx/approx_test.cpp
@@ -3,6 +3,7 @@
#include <vespa/vespalib/util/approx.h>
#include <limits>
#include <cfloat>
+#include <cmath>
#include <vespa/vespalib/util/stringfmt.h>
using vespalib::approx_equal;
@@ -85,7 +86,7 @@ TEST("require that numbers with slightly larger differences are not approximatel
TEST("require that specific numbers with almost 2 ULP differences are approximately equal") {
double base = 0.25111f;
- double epsilon = nextafterf(base, 1.0) - base;
+ double epsilon = std::nextafterf(base, 1.0) - base;
double larger = base + epsilon*1.499;
double smaller = base - epsilon*0.499;
EXPECT_TRUE(approx_equal(larger, smaller));
diff --git a/vespalib/src/tests/eval/compiled_function/compiled_function_test.cpp b/vespalib/src/tests/eval/compiled_function/compiled_function_test.cpp
index 474f1880f2a..3b6a9c6546f 100644
--- a/vespalib/src/tests/eval/compiled_function/compiled_function_test.cpp
+++ b/vespalib/src/tests/eval/compiled_function/compiled_function_test.cpp
@@ -5,6 +5,7 @@
#include <vespa/vespalib/eval/eval_spec.h>
#include <vespa/vespalib/eval/basic_nodes.h>
#include <vespa/vespalib/util/stringfmt.h>
+#include <cmath>
using namespace vespalib::eval;
@@ -88,7 +89,7 @@ TEST("require that large (plugin) set membership checks work") {
auto fun = cf.get_function<1>();
auto arr_fun = arr_cf.get_function();
for (double value = 0.5; value <= 100.5; value += 0.5) {
- if (round(value) == value) {
+ if (std::round(value) == value) {
EXPECT_EQUAL(1.0, fun(value));
EXPECT_EQUAL(1.0, arr_fun(&value));
} else {
diff --git a/vespalib/src/tests/executor/stress_test.cpp b/vespalib/src/tests/executor/stress_test.cpp
index bf130dcb9dc..d9d2352f7c3 100644
--- a/vespalib/src/tests/executor/stress_test.cpp
+++ b/vespalib/src/tests/executor/stress_test.cpp
@@ -7,8 +7,7 @@ LOG_SETUP("executor_test");
#include <vespa/vespalib/util/executor.h>
#include <vespa/vespalib/util/sync.h>
#include <vespa/vespalib/util/threadstackexecutor.h>
-
-#include <math.h>
+#include <cmath>
using namespace vespalib;
@@ -87,7 +86,7 @@ Test::calibrate(double wanted_ms)
}
double ms = (t1.MilliSecs() - t0.MilliSecs());
double size = (((double)n) / ms) * wanted_ms;
- return (uint32_t) round(size);
+ return (uint32_t) std::round(size);
}
int
diff --git a/vespalib/src/tests/random/friendfinder.cpp b/vespalib/src/tests/random/friendfinder.cpp
index 3a8070ccf2c..30c0dd33612 100644
--- a/vespalib/src/tests/random/friendfinder.cpp
+++ b/vespalib/src/tests/random/friendfinder.cpp
@@ -1,27 +1,27 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include <vespa/fastos/fastos.h>
#include <vespa/vespalib/util/random.h>
-#include <math.h>
#include <stdio.h>
#include <vespa/vespalib/stllike/string.h>
+#include <cmath>
int main(int argc, char **argv)
{
vespalib::RandomGen rnd(1);
- double logmean = log(1000.0);
- double lstddev = log(2.0);
+ double logmean = std::log(1000.0);
+ double lstddev = std::log(2.0);
if (argc > 2) {
- lstddev = log(strtod(argv[--argc], NULL));
- logmean = log(strtod(argv[--argc], NULL));
+ lstddev = std::log(strtod(argv[--argc], NULL));
+ logmean = std::log(strtod(argv[--argc], NULL));
} else if (argc > 1) {
- logmean = log(strtod(argv[--argc], NULL));
+ logmean = std::log(strtod(argv[--argc], NULL));
}
fprintf(stderr, "100 typical friendlist sizes: ");
for (int i = 0; i < 100; ++i) {
- int32_t want = (uint32_t)exp(rnd.nextNormal(logmean, lstddev));
+ int32_t want = (uint32_t)std::exp(rnd.nextNormal(logmean, lstddev));
fprintf(stderr, " %u", want);
}
fprintf(stderr, "\n");
@@ -30,8 +30,8 @@ int main(int argc, char **argv)
while (!feof(stdin)) {
++person;
std::vector<vespalib::string> friends;
- int32_t want = (uint32_t)exp(rnd.nextNormal(logmean, lstddev));
- if (want < 17) want = (uint32_t)(exp(logmean)+0.99);
+ int32_t want = (uint32_t)std::exp(rnd.nextNormal(logmean, lstddev));
+ if (want < 17) want = (uint32_t)(std::exp(logmean)+0.99);
if (want < 1) want = 1;
printf("me: %u friends:", person);
diff --git a/vespalib/src/vespa/vespalib/eval/eval_spec.cpp b/vespalib/src/vespa/vespalib/eval/eval_spec.cpp
index 95880f45a13..a7fb76d7505 100644
--- a/vespalib/src/vespa/vespalib/eval/eval_spec.cpp
+++ b/vespalib/src/vespa/vespalib/eval/eval_spec.cpp
@@ -81,7 +81,7 @@ EvalSpec::add_arithmetic_cases() {
add_rule({"a", -5.0, 5.0}, {"b", -5.0, 5.0}, "(a-b)", [](double a, double b){ return (a - b); });
add_rule({"a", -5.0, 5.0}, {"b", -5.0, 5.0}, "(a*b)", [](double a, double b){ return (a * b); });
add_rule({"a", -5.0, 5.0}, {"b", -5.0, 5.0}, "(a/b)", [](double a, double b){ return (a / b); });
- add_rule({"a", -5.0, 5.0}, {"b", -5.0, 5.0}, "(a^b)", [](double a, double b){ return pow(a,b); });
+ add_rule({"a", -5.0, 5.0}, {"b", -5.0, 5.0}, "(a^b)", [](double a, double b){ return std::pow(a,b); });
add_expression({"a", "b", "c", "d"}, "(((a+1)*(b-1))/((c+1)/(d-1)))")
.add_case({0.0, 2.0, 0.0, 2.0}, 1.0)
.add_case({1.0, 3.0, 0.0, 2.0}, 4.0)
@@ -91,29 +91,29 @@ EvalSpec::add_arithmetic_cases() {
void
EvalSpec::add_function_call_cases() {
- add_rule({"a", -1.0, 1.0}, "cos(a)", [](double a){ return cos(a); });
- add_rule({"a", -1.0, 1.0}, "sin(a)", [](double a){ return sin(a); });
- add_rule({"a", -1.0, 1.0}, "tan(a)", [](double a){ return tan(a); });
- add_rule({"a", -1.0, 1.0}, "cosh(a)", [](double a){ return cosh(a); });
- add_rule({"a", -1.0, 1.0}, "sinh(a)", [](double a){ return sinh(a); });
- add_rule({"a", -1.0, 1.0}, "tanh(a)", [](double a){ return tanh(a); });
- add_rule({"a", -1.0, 1.0}, "acos(a)", [](double a){ return acos(a); });
- add_rule({"a", -1.0, 1.0}, "asin(a)", [](double a){ return asin(a); });
- add_rule({"a", -1.0, 1.0}, "atan(a)", [](double a){ return atan(a); });
- add_rule({"a", -1.0, 1.0}, "exp(a)", [](double a){ return exp(a); });
- add_rule({"a", -1.0, 1.0}, "log10(a)", [](double a){ return log10(a); });
- add_rule({"a", -1.0, 1.0}, "log(a)", [](double a){ return log(a); });
- add_rule({"a", -1.0, 1.0}, "sqrt(a)", [](double a){ return sqrt(a); });
- add_rule({"a", -1.0, 1.0}, "ceil(a)", [](double a){ return ceil(a); });
- add_rule({"a", -1.0, 1.0}, "fabs(a)", [](double a){ return fabs(a); });
- add_rule({"a", -1.0, 1.0}, "floor(a)", [](double a){ return floor(a); });
+ add_rule({"a", -1.0, 1.0}, "cos(a)", [](double a){ return std::cos(a); });
+ add_rule({"a", -1.0, 1.0}, "sin(a)", [](double a){ return std::sin(a); });
+ add_rule({"a", -1.0, 1.0}, "tan(a)", [](double a){ return std::tan(a); });
+ add_rule({"a", -1.0, 1.0}, "cosh(a)", [](double a){ return std::cosh(a); });
+ add_rule({"a", -1.0, 1.0}, "sinh(a)", [](double a){ return std::sinh(a); });
+ add_rule({"a", -1.0, 1.0}, "tanh(a)", [](double a){ return std::tanh(a); });
+ add_rule({"a", -1.0, 1.0}, "acos(a)", [](double a){ return std::acos(a); });
+ add_rule({"a", -1.0, 1.0}, "asin(a)", [](double a){ return std::asin(a); });
+ add_rule({"a", -1.0, 1.0}, "atan(a)", [](double a){ return std::atan(a); });
+ add_rule({"a", -1.0, 1.0}, "exp(a)", [](double a){ return std::exp(a); });
+ add_rule({"a", -1.0, 1.0}, "log10(a)", [](double a){ return std::log10(a); });
+ add_rule({"a", -1.0, 1.0}, "log(a)", [](double a){ return std::log(a); });
+ add_rule({"a", -1.0, 1.0}, "sqrt(a)", [](double a){ return std::sqrt(a); });
+ add_rule({"a", -1.0, 1.0}, "ceil(a)", [](double a){ return std::ceil(a); });
+ add_rule({"a", -1.0, 1.0}, "fabs(a)", [](double a){ return std::fabs(a); });
+ add_rule({"a", -1.0, 1.0}, "floor(a)", [](double a){ return std::floor(a); });
add_expression({"a"}, "isNan(a)")
.add_case({-1.0}, 0.0).add_case({-0.5}, 0.0).add_case({0.0}, 0.0).add_case({0.5}, 0.0).add_case({1.0}, 0.0)
.add_case({my_nan}, 1.0).add_case({my_inf}, 0.0).add_case({-my_inf}, 0.0);
- add_rule({"a", -1.0, 1.0}, {"b", -1.0, 1.0}, "atan2(a,b)", [](double a, double b){ return atan2(a, b); });
- add_rule({"a", -1.0, 1.0}, {"b", -1.0, 1.0}, "ldexp(a,b)", [](double a, double b){ return ldexp(a, b); });
- add_rule({"a", -1.0, 1.0}, {"b", -1.0, 1.0}, "pow(a,b)", [](double a, double b){ return pow(a, b); });
- add_rule({"a", -1.0, 1.0}, {"b", -1.0, 1.0}, "fmod(a,b)", [](double a, double b){ return fmod(a, b); });
+ add_rule({"a", -1.0, 1.0}, {"b", -1.0, 1.0}, "atan2(a,b)", [](double a, double b){ return std::atan2(a, b); });
+ add_rule({"a", -1.0, 1.0}, {"b", -1.0, 1.0}, "ldexp(a,b)", [](double a, double b){ return std::ldexp(a, b); });
+ add_rule({"a", -1.0, 1.0}, {"b", -1.0, 1.0}, "pow(a,b)", [](double a, double b){ return std::pow(a, b); });
+ add_rule({"a", -1.0, 1.0}, {"b", -1.0, 1.0}, "fmod(a,b)", [](double a, double b){ return std::fmod(a, b); });
add_rule({"a", -1.0, 1.0}, {"b", -1.0, 1.0}, "min(a,b)", [](double a, double b){ return std::min(a, b); });
add_rule({"a", -1.0, 1.0}, {"b", -1.0, 1.0}, "max(a,b)", [](double a, double b){ return std::max(a, b); });
}
diff --git a/vespalib/src/vespa/vespalib/eval/llvm_wrapper.cpp b/vespalib/src/vespa/vespalib/eval/llvm_wrapper.cpp
index d846b197d8d..e21511de4f9 100644
--- a/vespalib/src/vespa/vespalib/eval/llvm_wrapper.cpp
+++ b/vespalib/src/vespa/vespalib/eval/llvm_wrapper.cpp
@@ -1,6 +1,7 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include <vespa/fastos/fastos.h>
+#include <cmath>
#include "llvm_wrapper.h"
#include "node_visitor.h"
#include "node_traverser.h"
@@ -18,7 +19,7 @@
#include <vespa/vespalib/stllike/hash_set.h>
#include <vespa/vespalib/util/approx.h>
-double vespalib_eval_ldexp(double a, double b) { return ldexp(a, b); }
+double vespalib_eval_ldexp(double a, double b) { return std::ldexp(a, b); }
double vespalib_eval_min(double a, double b) { return std::min(a, b); }
double vespalib_eval_max(double a, double b) { return std::max(a, b); }
double vespalib_eval_isnan(double a) { return (std::isnan(a) ? 1.0 : 0.0); }
diff --git a/vespalib/src/vespa/vespalib/eval/operation.cpp b/vespalib/src/vespa/vespalib/eval/operation.cpp
index bcd4c5171d2..78bc0fd389d 100644
--- a/vespalib/src/vespa/vespalib/eval/operation.cpp
+++ b/vespalib/src/vespa/vespalib/eval/operation.cpp
@@ -1,6 +1,7 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include <vespa/fastos/fastos.h>
+#include <cmath>
#include "operation.h"
#include "value.h"
#include "operation_visitor.h"
@@ -51,7 +52,7 @@ double Add::eval(double a, double b) const { return (a + b); }
double Sub::eval(double a, double b) const { return (a - b); }
double Mul::eval(double a, double b) const { return (a * b); }
double Div::eval(double a, double b) const { return (a / b); }
-double Pow::eval(double a, double b) const { return pow(a, b); }
+double Pow::eval(double a, double b) const { return std::pow(a, b); }
double Equal::eval(double a, double b) const { return (a == b) ? 1.0 : 0.0; }
double NotEqual::eval(double a, double b) const { return (a != b) ? 1.0 : 0.0; }
double Approx::eval(double a, double b) const { return approx_equal(a, b); }
@@ -61,25 +62,25 @@ double Greater::eval(double a, double b) const { return (a > b) ? 1.0 : 0.0; }
double GreaterEqual::eval(double a, double b) const { return (a >= b) ? 1.0 : 0.0; }
double And::eval(double a, double b) const { return ((a != 0.0) && (b != 0.0)) ? 1.0 : 0.0; }
double Or::eval(double a, double b) const { return ((a != 0.0) || (b != 0.0)) ? 1.0 : 0.0; }
-double Cos::eval(double a) const { return cos(a); }
-double Sin::eval(double a) const { return sin(a); }
-double Tan::eval(double a) const { return tan(a); }
-double Cosh::eval(double a) const { return cosh(a); }
-double Sinh::eval(double a) const { return sinh(a); }
-double Tanh::eval(double a) const { return tanh(a); }
-double Acos::eval(double a) const { return acos(a); }
-double Asin::eval(double a) const { return asin(a); }
-double Atan::eval(double a) const { return atan(a); }
-double Exp::eval(double a) const { return exp(a); }
-double Log10::eval(double a) const { return log10(a); }
-double Log::eval(double a) const { return log(a); }
-double Sqrt::eval(double a) const { return sqrt(a); }
-double Ceil::eval(double a) const { return ceil(a); }
-double Fabs::eval(double a) const { return fabs(a); }
-double Floor::eval(double a) const { return floor(a); }
-double Atan2::eval(double a, double b) const { return atan2(a, b); }
-double Ldexp::eval(double a, double b) const { return ldexp(a, b); }
-double Fmod::eval(double a, double b) const { return fmod(a, b); }
+double Cos::eval(double a) const { return std::cos(a); }
+double Sin::eval(double a) const { return std::sin(a); }
+double Tan::eval(double a) const { return std::tan(a); }
+double Cosh::eval(double a) const { return std::cosh(a); }
+double Sinh::eval(double a) const { return std::sinh(a); }
+double Tanh::eval(double a) const { return std::tanh(a); }
+double Acos::eval(double a) const { return std::acos(a); }
+double Asin::eval(double a) const { return std::asin(a); }
+double Atan::eval(double a) const { return std::atan(a); }
+double Exp::eval(double a) const { return std::exp(a); }
+double Log10::eval(double a) const { return std::log10(a); }
+double Log::eval(double a) const { return std::log(a); }
+double Sqrt::eval(double a) const { return std::sqrt(a); }
+double Ceil::eval(double a) const { return std::ceil(a); }
+double Fabs::eval(double a) const { return std::fabs(a); }
+double Floor::eval(double a) const { return std::floor(a); }
+double Atan2::eval(double a, double b) const { return std::atan2(a, b); }
+double Ldexp::eval(double a, double b) const { return std::ldexp(a, b); }
+double Fmod::eval(double a, double b) const { return std::fmod(a, b); }
double Min::eval(double a, double b) const { return std::min(a, b); }
double Max::eval(double a, double b) const { return std::max(a, b); }
double IsNan::eval(double a) const { return std::isnan(a) ? 1.0 : 0.0; }
diff --git a/vespalib/src/vespa/vespalib/util/approx.h b/vespalib/src/vespa/vespalib/util/approx.h
index 37fb4012d4c..ee61d71d0a6 100644
--- a/vespalib/src/vespa/vespalib/util/approx.h
+++ b/vespalib/src/vespa/vespalib/util/approx.h
@@ -2,7 +2,7 @@
#pragma once
-#include <math.h>
+#include <cmath>
namespace vespalib {
@@ -19,13 +19,13 @@ inline bool approx_equal(double a, double b)
// This is in a way the simple case, but it's needed
// anyway to handle numbers that are outside "float" range.
double frac = b / a;
- float rounded = nextafterf(frac, 1.0);
+ float rounded = std::nextafterf(frac, 1.0);
return (rounded == 1.0);
}
// in reality this may allow up to 2 bits difference
// since we round to float and also call nextafterf
float aa = (float) a;
- return (aa == nextafterf((float) b, aa));
+ return (aa == std::nextafterf((float) b, aa));
}
} // namespace vespalib
diff --git a/vespalib/src/vespa/vespalib/util/random.cpp b/vespalib/src/vespa/vespalib/util/random.cpp
index 64f55c98371..051b1ca3ba5 100644
--- a/vespalib/src/vespa/vespalib/util/random.cpp
+++ b/vespalib/src/vespa/vespalib/util/random.cpp
@@ -2,6 +2,7 @@
#include <vespa/fastos/fastos.h>
#include "random.h"
+#include <cmath>
namespace vespalib {
@@ -53,8 +54,8 @@ RandomGen::DRanNormalTail(double dMin, int iNegative)
{
double x, y;
do {
- x = log(nextDouble()) / dMin;
- y = log(nextDouble());
+ x = std::log(nextDouble()) / dMin;
+ y = std::log(nextDouble());
} while (-2 * y < x * x);
return iNegative ? x - dMin : dMin - x;
@@ -63,12 +64,12 @@ RandomGen::DRanNormalTail(double dMin, int iNegative)
void
RandomGen::zigNorInit(int iC, double dR, double dV)
{
- double f(exp(-0.5 * dR * dR));
+ double f(std::exp(-0.5 * dR * dR));
s_adZigX[0] = dV / f; /* [0] is bottom block: V / f(R) */
s_adZigX[1] = dR;
for (int i = 2; i < iC; ++i) {
- s_adZigX[i] = sqrt(-2 * log(dV / s_adZigX[i - 1] + f));
- f = exp(-0.5 * s_adZigX[i] * s_adZigX[i]);
+ s_adZigX[i] = std::sqrt(-2 * std::log(dV / s_adZigX[i - 1] + f));
+ f = std::exp(-0.5 * s_adZigX[i] * s_adZigX[i]);
}
s_adZigX[iC] = 0.0;
for (int i = 0; i < iC; ++i) {
@@ -83,15 +84,15 @@ RandomGen::DRanNormalZig()
double u = 2 * nextDouble() - 1;
unsigned int i = nextInt32() & 0x7F;
/* first try the rectangular boxes */
- if (fabs(u) < s_adZigR[i])
+ if (std::fabs(u) < s_adZigR[i])
return u * s_adZigX[i];
/* bottom box: sample from the tail */
if (i == 0)
return DRanNormalTail(ZIGNOR_R, u < 0);
/* is this a sample from the wedges? */
double x = u * s_adZigX[i];
- double f0 = exp(-0.5 * (s_adZigX[i] * s_adZigX[i] - x * x) );
- double f1 = exp(-0.5 * (s_adZigX[i+1] * s_adZigX[i+1] - x * x) );
+ double f0 = std::exp(-0.5 * (s_adZigX[i] * s_adZigX[i] - x * x) );
+ double f1 = std::exp(-0.5 * (s_adZigX[i+1] * s_adZigX[i+1] - x * x) );
if (f1 + nextDouble() * (f0 - f1) < 1.0) {
return x;
diff --git a/vespalib/src/vespa/vespalib/util/random.h b/vespalib/src/vespa/vespalib/util/random.h
index 411d0033c7c..e3479d2efe7 100644
--- a/vespalib/src/vespa/vespalib/util/random.h
+++ b/vespalib/src/vespa/vespalib/util/random.h
@@ -9,7 +9,7 @@
#include <sys/types.h>
#include <unistd.h>
#include <time.h>
-#include <math.h>
+#include <cmath>
namespace vespalib {