예제 #1
0
__complex128
cexpiq (__float128 x)
{
  __complex128 v;
  COMPLEX_ASSIGN (v, cosq (x), sinq (x));
  return v;
}
예제 #2
0
void r_perm_matrix_complex_128(__complex128 r[MATRIX_SIZE][MATRIX_SIZE]){
   int i,j;
  __float128 nn = MATRIX_SIZE;
  std::random_device rd;
	std::mt19937 mt(rd());

  if(! init_for_perm_flg){
    init_for_perm();
  }

  for(i=0; i<MATRIX_SIZE; i++){
    for(j=0; j<MATRIX_SIZE; j++){
      COMPLEX_ASSIGN(r[i][j], 0.0Q, 0.0Q);
    }
  }

  std::vector<int> perm(for_perm,for_perm+MATRIX_SIZE);

  for(i=0; i<MATRIX_SIZE; i++){
    __float128 rval = random_float_128(M_PIq);
    int idx = mt() % (MATRIX_SIZE - i);
     if(rval < 0.0Q)
       rval = -rval;
     COMPLEX_ASSIGN(r[i][perm[idx]], cosq(-2.0Q*M_PIq*rval/nn), sinq(-2.0Q*M_PIq*rval/nn));
     perm.erase(perm.begin()+idx);
  }
}
예제 #3
0
__complex128
ccoshq (__complex128 a)
{
  __float128 r = REALPART (a), i = IMAGPART (a);
  __complex128 v;
  COMPLEX_ASSIGN (v, coshq (r) * cosq (i),  sinhq (r) * sinq (i));
  return v;
}
예제 #4
0
void dft_matrix_complex_double(std::complex<double> f[MATRIX_SIZE][MATRIX_SIZE]){
  int i, j;
  double nn = MATRIX_SIZE;
  for(i=0; i<MATRIX_SIZE; i++){
    for(j=0; j<MATRIX_SIZE; j++){
      f[i][j] = std::complex<double>(cosq(-2.0*M_PI*i*j/nn), sin(-2.0*M_PI*i*j/nn));
    }
  }
}
예제 #5
0
void r_matrix_complex_128(__complex128 r[MATRIX_SIZE][MATRIX_SIZE]){
   int i;
  __float128 nn = MATRIX_SIZE;
  for(i=0; i<MATRIX_SIZE; i++){
    __float128 rval = random_float_128(M_PIq);
     if(rval < 0.0Q)
       rval = -rval;
     COMPLEX_ASSIGN(r[i][i], cosq(-2.0Q*M_PIq*rval/nn), sinq(-2.0Q*M_PIq*rval/nn));
  }
}
예제 #6
0
void dht_matrix(__float128 f[MATRIX_SIZE][MATRIX_SIZE]){
  int i, j;
  __float128 nn = MATRIX_SIZE;
  for(i=0; i<MATRIX_SIZE; i++){
    for(j=0; j<MATRIX_SIZE; j++){
      __float128 ii = i;
      __float128 jj = j;
      f[i][j] = cosq(2.0Q*M_PIq*ii*jj/nn) + sinq(2.0Q*M_PIq*ii*jj/nn);
    }
  }
}
예제 #7
0
void dft_matrix_complex_128(__complex128 f[MATRIX_SIZE][MATRIX_SIZE]){
  int i, j;
  __float128 nn = MATRIX_SIZE;
  for(i=0; i<MATRIX_SIZE; i++){
    for(j=0; j<MATRIX_SIZE; j++){
      __float128 ii = i;
      __float128 jj = j;
      COMPLEX_ASSIGN(f[i][j], cosq(-2.0Q*M_PIq*ii*jj/nn), sinq(-2.0Q*M_PIq*ii*jj/nn));
    }
  }
}
예제 #8
0
__complex128
cexpq (__complex128 z)
{
  __float128 a, b;
  __complex128 v;

  a = REALPART (z);
  b = IMAGPART (z);
  COMPLEX_ASSIGN (v, cosq (b), sinq (b));
  return expq (a) * v;
}
예제 #9
0
 inline std::complex< __float128 > pow( std::complex< __float128> x , __float128 y )
 {
     __float128 r = pow( abs(x) , y );
     __float128 phi = atanq( x.imag() / x.real() );
     return std::complex< __float128 >( r * cosq( y * phi ) , r * sinq( y * phi ) );
 }
예제 #10
0
파일: float128.hpp 프로젝트: PAV38/PDAL
inline void eval_cos(float128_backend& result, const float128_backend& arg)
{
   result.value() = cosq(arg.value());
}
예제 #11
0
__float128 f2(__float128 x, __float128 y) { return cosq(x)*cosq(y); }
예제 #12
0
//2D phase space functions in L1
__float128 f1(__float128 x, __float128 y) { return cosq(x+y);}
예제 #13
0
파일: impl.hpp 프로젝트: mcopik/Elemental
inline Quad Cos( const Quad& alpha ) { return cosq(alpha); }
예제 #14
0
파일: impl.hpp 프로젝트: mcopik/Elemental
inline Complex<Quad> ComplexFromPolar( const Quad& r, const Quad& theta )
{
    const Quad realPart = r*cosq(theta);
    const Quad imagPart = r*sinq(theta);
    return Complex<Quad>(realPart,imagPart);
}
예제 #15
0
__float128 h1(__float128 x, __float128 y) {return cosq(base(x,y));} //real part