Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
c_qtenscale.c File Reference
#include "defs.h"
Include dependency graph for c_qtenscale.c:

Go to the source code of this file.

Defines

#define min(x, y)   ((x)<(y)? (x): (y))
#define TEN_1   0 /* offset to 10 ** 1 */
#define TEN_32   31 /* offset to 10 ** 32 */
#define TEN_M1   40 /* offset to 10 ** -1 */
#define TEN_M32   71 /* offset to 10 ** -32 */
#define TEN_LAST   80 /* offset one past last entry */
#define HIBITULL   (1ULL << 63)

Functions

 c_qwmultu (UINT64 *z, UINT64 *x, const UINT64 *y)
static void qnorm_and_round (UINT64 *, INT32 *, UINT64 *)
static void qnorm_and_round (p, INT32 *norm, prod)
void c_qtenscale (p, INT32 exp, INT32 *bexp)

Variables

static char * source_file = __FILE__
static const UINT64 tenpow [80][2]
static const INT32 twoexp [80]

Define Documentation

#define HIBITULL   (1ULL << 63)

Definition at line 165 of file c_qtenscale.c.

Referenced by qnorm_and_round().

#define min (   x,
 
)    ((x)<(y)? (x): (y))

Definition at line 53 of file c_qtenscale.c.

Referenced by c_qtenscale().

#define TEN_1   0 /* offset to 10 ** 1 */

Definition at line 159 of file c_qtenscale.c.

Referenced by c_qtenscale().

#define TEN_32   31 /* offset to 10 ** 32 */

Definition at line 160 of file c_qtenscale.c.

Referenced by c_qtenscale().

#define TEN_LAST   80 /* offset one past last entry */

Definition at line 163 of file c_qtenscale.c.

#define TEN_M1   40 /* offset to 10 ** -1 */

Definition at line 161 of file c_qtenscale.c.

Referenced by c_qtenscale().

#define TEN_M32   71 /* offset to 10 ** -32 */

Definition at line 162 of file c_qtenscale.c.

Referenced by c_qtenscale().


Function Documentation

void c_qtenscale ( ,
INT32  exp,
INT32 bexp 
)

Definition at line 237 of file c_qtenscale.c.

References c_qwmultu(), min, qnorm_and_round(), t1, TEN_1, TEN_32, TEN_M1, TEN_M32, tenpow, and twoexp.

Here is the call graph for this function:

c_qwmultu ( UINT64 z,
UINT64 x,
const UINT64 y 
)

Referenced by c_qtenscale().

static void qnorm_and_round ( UINT64 ,
INT32 ,
UINT64  
) [static]

Referenced by c_qtenscale().

static void qnorm_and_round ( ,
INT32 norm,
prod   
) [static]

Definition at line 179 of file c_qtenscale.c.

References HIBITULL.


Variable Documentation

char* source_file = __FILE__ [static]

Definition at line 49 of file c_qtenscale.c.

const UINT64 tenpow[80][2] [static]

Definition at line 57 of file c_qtenscale.c.

Referenced by c_qtenscale().

const INT32 twoexp[80] [static]
Initial value:
 {
   4,   7,  10,  14,  17,  20,  24,  27,  30,  34,
  37,  40,  44,  47,  50,  54,  57,  60,  64,  67,
  70,  74,  77,  80,  84,  87,  90,  94,  97, 100, 103, 

 107, 213, 319, 426, 532, 638, 745, 851, 957, 

  -3,  -6,  -9, -13, -16, -19, -23, -26, -29, -33,
 -36, -39, -43, -46, -49, -53, -56, -59, -63, -66,
 -69, -73, -76, -79, -83, -86, -89, -93, -96, -99,-102,

-106,-212,-318,-425,-531,-637,-744,-850,-956
}

Definition at line 144 of file c_qtenscale.c.

Referenced by c_qtenscale().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines