float_emul.h Source File
Back to the index.
src
include
float_emul.h
Go to the documentation of this file.
1
#ifndef FLOAT_EMUL_H
2
#define FLOAT_EMUL_H
3
4
/*
5
* Copyright (C) 2005-2018 Anders Gavare. All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions are met:
9
*
10
* 1. Redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer.
12
* 2. Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
* 3. The name of the author may not be used to endorse or promote products
16
* derived from this software without specific prior written permission.
17
*
18
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28
* SUCH DAMAGE.
29
*
30
*
31
* Floating point emulation. See src/float_emul.c for the details.
32
*/
33
34
#include <math.h>
35
36
#include "
misc.h
"
37
38
struct
ieee_float_value
{
39
double
f
;
40
int
nan
;
41
};
42
43
#define IEEE_FMT_S 1
/* single, 32-bit float */
44
#define IEEE_FMT_D 2
/* double, 64-bit float */
45
#define IEEE_FMT_W 3
/* word, 32-bit integer */
46
#define IEEE_FMT_L 4
/* long, 64-bit integer */
47
48
void
ieee_interpret_float_value
(uint64_t x,
struct
ieee_float_value
*fvp,
int
fmt);
49
uint64_t
ieee_store_float_value
(
double
nf,
int
fmt);
50
51
#endif
/* FLOAT_EMUL_H */
misc.h
ieee_float_value
Definition:
float_emul.h:38
ieee_interpret_float_value
void ieee_interpret_float_value(uint64_t x, struct ieee_float_value *fvp, int fmt)
Definition:
float_emul.cc:49
ieee_float_value::nan
int nan
Definition:
float_emul.h:40
ieee_store_float_value
uint64_t ieee_store_float_value(double nf, int fmt)
Definition:
float_emul.cc:238
ieee_float_value::f
double f
Definition:
float_emul.h:39
Generated on Fri Dec 7 2018 19:52:23 for GXemul by
1.8.13