blob: b5276883457e42f51ed55a987b295244ff61c20b [file] [log] [blame] [edit]
#include <emscripten.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
// Get values through a call to JS, so the optimizer can't hardcode results.
EM_JS(double, get_number, (), {
return 2.1828;
});
EM_JS(double, get_another_number, (), {
return 3.1415;
});
int main() {
#define TEST_1_TRIPLE(name) \
printf("float %s => %f\n", #name, name##f((float)get_number())); \
printf("double %s => %f\n", #name, name(get_number()));
#define TEST_2_TRIPLE(name) \
printf("float %s => %f\n", #name, name##f((float)get_number(), get_another_number())); \
printf("double %s => %f\n", #name, name(get_number(), get_another_number()));
TEST_1_TRIPLE(cos)
TEST_1_TRIPLE(sin)
TEST_1_TRIPLE(tan)
TEST_1_TRIPLE(acos)
TEST_1_TRIPLE(asin)
TEST_1_TRIPLE(atan)
TEST_2_TRIPLE(atan2)
TEST_1_TRIPLE(exp)
TEST_1_TRIPLE(log)
TEST_1_TRIPLE(sqrt)
TEST_1_TRIPLE(fabs)
TEST_1_TRIPLE(ceil)
TEST_1_TRIPLE(floor)
TEST_2_TRIPLE(pow)
TEST_1_TRIPLE(round)
TEST_1_TRIPLE(rint)
TEST_1_TRIPLE(nearbyint)
}