⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fixsqrt.c

📁 [Game.Programming].Academic - Graphics Gems (6 books source code)
💻 C
字号:
/* The definitions below yield 2 integer bits, 30 fractional bits */#define FRACBITS 30    /* Must be even! */#define ITERS    (15 + (FRACBITS >> 1))typedef long TFract;TFractFFracSqrt(TFract x){    register unsigned long root, remHi, remLo, testDiv, count;    root = 0;         /* Clear root */    remHi = 0;        /* Clear high part of partial remainder */    remLo = x;        /* Get argument into low part of partial remainder */    count = ITERS;    /* Load loop counter */    do {        remHi = (remHi << 2) | (remLo >> 30); remLo <<= 2;  /* get 2 bits of arg */        root <<= 1;   /* Get ready for the next bit in the root */        testDiv = (root << 1) + 1;    /* Test radical */        if (remHi >= testDiv) {            remHi -= testDiv;            root += 1;        }    } while (count-- != 0);    return(root);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -