Пример #1
0
LIS_INT lis_vector_reciprocalex_m(LIS_VECTOR vx)
{
	LIS_INT i,n;
	LIS_SCALAR *x,*xl;
	LIS_SCALAR one_hi,one_lo;
	LIS_QUAD_DECLAR;

	LIS_DEBUG_FUNC_IN;

	n   = vx->n;
	x   = vx->value;
	xl  = vx->value_lo;
	one_hi = 1.0;
	one_lo = 0.0;
	#ifdef USE_VEC_COMP
    #pragma cdir nodep
	#endif
	#ifdef _OPENMP
	#ifndef USE_SSE2
		#pragma omp parallel for private(i,p1,p2,tq,bhi,blo,chi,clo,sh,eh,sl,el,th,tl)
	#else
		#pragma omp parallel private(i,bh,ch,sh,wh,th,bl,cl,sl,wl,tl,p1,p2,t0,t1,t2,eh)
	#endif
	#endif
	for(i=0; i<n; i++)
	{
		#ifndef USE_SSE2
			LIS_QUAD_DIV(x[i],xl[i],one_hi,one_lo,x[i],xl[i]);
		#else
			LIS_QUAD_DIV_SSE2(x[i],xl[i],one_hi,one_lo,x[i],xl[i]);
		#endif
	}
	LIS_DEBUG_FUNC_OUT;
	return LIS_SUCCESS;
}
Пример #2
0
void lis_quad_div(LIS_QUAD *a, const LIS_QUAD *b, const LIS_QUAD *c)
{
	LIS_QUAD_DECLAR;

	#ifndef USE_SSE2
		LIS_QUAD_DIV(a->hi,a->lo,b->hi,b->lo,c->hi,c->lo);
	#else
		LIS_QUAD_DIV_SSE2(a->hi,a->lo,b->hi,b->lo,c->hi,c->lo);
	#endif
}