// Each of the following complex functions can be implemented with a single
// wasm instruction, so use that implementation rather than the portable
// one in libm.

#include <complex.h>

float (crealf)(float _Complex x) {
    return __builtin_crealf(x);
}

double (creal)(double _Complex x) {
    return __builtin_creal(x);
}

long double (creall)(long double _Complex x) {
    return __builtin_creall(x);
}

float (cimagf)(float _Complex x) {
    return __builtin_cimagf(x);
}

double (cimag)(double _Complex x) {
    return __builtin_cimag(x);
}

long double (cimagl)(long double _Complex x) {
    return __builtin_cimagl(x);
}