c_complex coherent_state(double x_in, double h, double x_c, double p_c) { c_complex res; double x; c_complex z, zz; c_complex tmp; x = x_in/sqrt(h/(2*M_PI)); z.re = x_c/sqrt(h/M_PI); z.im = p_c/sqrt(h/M_PI); zz = mul_c(z,z); tmp.re = -abs_c(z)*abs_c(z)/2.0 - (x*x + zz.re)/2.0 + sqrt(2.0)*x*z.re; tmp.im = - zz.im /2.0 + sqrt(2.0)*x*z.im; res = exp_c(tmp); res.re *= sqrt(sqrt(2.0/h)); res.im *= sqrt(sqrt(2.0/h)); return res; }
void drawAxes(float* modelMat, GLuint modelLoc, int width, int height) { double l = abs_c(g_left); double r = abs_c(g_right); double xoff = (l / (r + l))* width; if (g_left < 0 && g_right > 0) { getModelviewMatrix(modelMat, xoff, 300, 1, 600); glUniformMatrix4fv(modelLoc, 1, GL_FALSE, modelMat); glDrawArrays(GL_TRIANGLES, 0, 6); } double d = abs_c(g_down); double u = abs_c(g_up); double yoff = (d / (u + d))* height; if (g_up > 0 && g_down < 0) { getModelviewMatrix(modelMat, 300, yoff, 600, 1); glUniformMatrix4fv(modelLoc, 1, GL_FALSE, modelMat); glDrawArrays(GL_TRIANGLES, 0, 6); } }
static void record_max_gyro_value() { if (abs_c(gyro_raws.x) > gyro_max_value) { gyro_max_value = abs_c(gyro_raws.x); } if (abs_c(gyro_raws.y) > gyro_max_value) { gyro_max_value = abs_c(gyro_raws.y); } if (abs_c(gyro_raws.z) > gyro_max_value) { gyro_max_value = abs_c(gyro_raws.z); } }
static void record_max_accel_value() { if (abs_c(accel_raws.x) > accel_max_value) { accel_max_value = abs_c(accel_raws.x); } if (abs_c(accel_raws.y) > accel_max_value) { accel_max_value = abs_c(accel_raws.y); } if (abs_c(accel_raws.z) > accel_max_value) { accel_max_value = abs_c(accel_raws.z); } }