Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
s_approxRecip32_1.c File Reference
#include <stdint.h>
#include "platform.h"
Include dependency graph for s_approxRecip32_1.c:

Go to the source code of this file.

Functions

uint32_t softfloat_approxRecip32_1 (uint32_t a)
 

Variables

const uint16_t softfloat_approxRecip_1k0s [16]
 
const uint16_t softfloat_approxRecip_1k1s [16]
 

Function Documentation

◆ softfloat_approxRecip32_1()

uint32_t softfloat_approxRecip32_1 ( uint32_t a)

Definition at line 45 of file s_approxRecip32_1.c.

46{
47 int index;
48 uint16_t eps, r0;
51 uint32_t sqrSigma0;
52
53 index = a>>27 & 0xF;
54 eps = (uint16_t) (a>>11);
56 - ((softfloat_approxRecip_1k1s[index] * (uint_fast32_t) eps)>>20);
57 sigma0 = ~(uint_fast32_t) ((r0 * (uint_fast64_t) a)>>7);
58 r = ((uint_fast32_t) r0<<16) + ((r0 * (uint_fast64_t) sigma0)>>24);
59 sqrSigma0 = ((uint_fast64_t) sigma0 * sigma0)>>32;
60 r += ((uint32_t) r * (uint_fast64_t) sqrSigma0)>>48;
61 return r;
62
63}
const mie::Vuint & r
Definition bn.cpp:28
#define sigma0(x)
Definition hash_impl.h:21
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition pointer.h:1181
const uint16_t softfloat_approxRecip_1k0s[16]
const uint16_t softfloat_approxRecip_1k1s[16]
unsigned short uint16_t
Definition stdint.h:125
unsigned int uint32_t
Definition stdint.h:126
uint64_t uint_fast64_t
Definition stdint.h:157
uint32_t uint_fast32_t
Definition stdint.h:156
Here is the caller graph for this function:

Variable Documentation

◆ softfloat_approxRecip_1k0s

const uint16_t softfloat_approxRecip_1k0s[16]
extern

Definition at line 41 of file s_approxRecip_1Ks.c.

41 {
42 0xFFC4, 0xF0BE, 0xE363, 0xD76F, 0xCCAD, 0xC2F0, 0xBA16, 0xB201,
43 0xAA97, 0xA3C6, 0x9D7A, 0x97A6, 0x923C, 0x8D32, 0x887E, 0x8417
44};

◆ softfloat_approxRecip_1k1s

const uint16_t softfloat_approxRecip_1k1s[16]
extern

Definition at line 45 of file s_approxRecip_1Ks.c.

45 {
46 0xF0F1, 0xD62C, 0xBFA1, 0xAC77, 0x9C0A, 0x8DDB, 0x8185, 0x76BA,
47 0x6D3B, 0x64D4, 0x5D5C, 0x56B1, 0x50B6, 0x4B55, 0x4679, 0x4211
48};