Source file Operations.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 1 "extracted/Operations.ml"
open BinInt
open Defs
open Zaux

(** val coq_Falign :
    radix -> float -> float ->
    (Farith_Big.big_int * Farith_Big.big_int) * Farith_Big.big_int **)

let coq_Falign beta f1 f2 =
  let { coq_Fnum = m1; coq_Fexp = e1 } = f1 in
  let { coq_Fnum = m2; coq_Fexp = e2 } = f2 in
  if Farith_Big.le e1 e2
  then ((m1,
         (Farith_Big.mult m2 (Z.pow (radix_val beta) (Farith_Big.sub e2 e1)))),
         e1)
  else (((Farith_Big.mult m1 (Z.pow (radix_val beta) (Farith_Big.sub e1 e2))),
         m2), e2)

(** val coq_Fplus : radix -> float -> float -> float **)

let coq_Fplus beta f1 f2 =
  let (p, e) = coq_Falign beta f1 f2 in
  let (m1, m2) = p in { coq_Fnum = (Farith_Big.add m1 m2); coq_Fexp = e }

(** val coq_Fmult : radix -> float -> float -> float **)

let coq_Fmult _ f1 f2 =
  let { coq_Fnum = m1; coq_Fexp = e1 } = f1 in
  let { coq_Fnum = m2; coq_Fexp = e2 } = f2 in
  { coq_Fnum = (Farith_Big.mult m1 m2); coq_Fexp = (Farith_Big.add e1 e2) }