コード例 #1
0
ファイル: math.c プロジェクト: raulmonti/FIG
gsl_complex
gsl_complex_pow_real (gsl_complex a, double b)
{                               /* z=a^b */
  gsl_complex z;

  if (GSL_REAL (a) == 0 && GSL_IMAG (a) == 0)
    {
      if (b == 0)
        {
          GSL_SET_COMPLEX (&z, 1, 0);
        }
      else
        {
          GSL_SET_COMPLEX (&z, 0, 0);
        }
    }
  else
    {
      double logr = gsl_complex_logabs (a);
      double theta = gsl_complex_arg (a);
      double rho = exp (logr * b);
      double beta = theta * b;
      GSL_SET_COMPLEX (&z, rho * cos (beta), rho * sin (beta));
    }

  return z;
}
コード例 #2
0
ファイル: gsl_userdef.c プロジェクト: gimunu/octopus_SCE
/* ------------------------------------------------------ */
gsl_complex gsl_complex_clogabs (gsl_complex a)
{        
  gsl_complex z;

  GSL_SET_COMPLEX (&z, gsl_complex_logabs(a), 0);

  return z;
}
コード例 #3
0
ファイル: math.c プロジェクト: AlexWoroschilow/wurst-alphabet
gsl_complex gsl_complex_log(gsl_complex a)
{				/* z=log(a) */
    double logr = gsl_complex_logabs(a);
    double theta = gsl_complex_arg(a);

    gsl_complex z;
    GSL_SET_COMPLEX(&z, logr, theta);
    return z;
}
コード例 #4
0
ファイル: math.c プロジェクト: AlexWoroschilow/wurst-alphabet
gsl_complex gsl_complex_pow(gsl_complex a, gsl_complex b)
{				/* z=a^b */
    gsl_complex z;

    if (GSL_REAL(a) == 0 && GSL_IMAG(a) == 0.0) {
	GSL_SET_COMPLEX(&z, 0.0, 0.0);
    } else {
	double logr = gsl_complex_logabs(a);
	double theta = gsl_complex_arg(a);

	double br = GSL_REAL(b), bi = GSL_IMAG(b);

	double rho = exp(logr * br - bi * theta);
	double beta = theta * br + bi * logr;

	GSL_SET_COMPLEX(&z, rho * cos(beta), rho * sin(beta));
    }

    return z;
}
コード例 #5
0
ファイル: gslpp_complex.cpp プロジェクト: shehu0/HEPfit
 double complex::log_of_abs() const
 {
     return gsl_complex_logabs(_complex);
 }
コード例 #6
0
ファイル: mlgsl_complex.c プロジェクト: ptrf/LCDE
/* properties of complex numbers */
CAMLprim value ml_gsl_complex_logabs(value Z)
{
  _DECLARE_COMPLEX(Z);
  _CONVERT_COMPLEX(Z);
  return copy_double(gsl_complex_logabs(z_Z));
}