double factorial(int num){ double fact = 1; for(int i = 1; i <= num; i++){ fact *= i; } return fact; } export void sinx( uniform int N, uniform int terms,uniform float* uniform x, uniform float* uniform result) { foreach (i = 0 ... N) { float value = x[i]; float numer = x[i] * x[i] * x[i]; uniform int sign = -1; for (uniform int j=1; j<=terms; j++) { value += sign * pow(x[i],2*j+1) / factorial (2*j+1); sign *= -1; } result[i] = value; } }