Esempio n. 1
0
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;
}
Esempio n. 2
0
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);
	}
}
Esempio n. 3
0
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); }
}
Esempio n. 4
0
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); }
}