csharpfftfsharpintegrationinterpolationlinear-algebramathdifferentiationmatrixnumericsrandomregressionstatisticsmathnet
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.7 KiB
61 lines
1.7 KiB
// (c) Microsoft Corporation 2005-2009.
|
|
|
|
(* Rebind z,q,nums to implement the ocaml library APIs *)
|
|
|
|
module Microsoft.FSharp.Compatibility.OCaml.Num
|
|
open Microsoft.FSharp.Compatibility.OCaml
|
|
open Microsoft.FSharp.Compatibility.OCaml.Pervasives
|
|
open Microsoft.FSharp.Core
|
|
open Microsoft.FSharp.Math
|
|
|
|
type num = bignum
|
|
|
|
let Big_int(x) = BigNum.FromBigInt x
|
|
let Int(x) = BigNum.FromInt x
|
|
|
|
let minus_num(x:bignum) = (x)
|
|
|
|
let add_num (x:bignum) y = x + y
|
|
let sub_num (x:bignum) y = x - y
|
|
let mult_num (x:bignum) y = x * y
|
|
let div_num (x:bignum) y = x / y
|
|
let abs_num (x:bignum) = abs x
|
|
let succ_num (x:bignum) = x + BigNum.One
|
|
let pred_num (x:bignum) = x - BigNum.One
|
|
let pow_num (x:bignum) n = BigNum.PowN(x,n)
|
|
let incr_num r = r := succ_num !r
|
|
let decr_num r = (r := pred_num !r)
|
|
|
|
let sign_num(n:bignum) = sign n
|
|
|
|
let ( +/ ) x y = add_num x y
|
|
let ( -/ ) x y = sub_num x y
|
|
let ( */ ) x y = mult_num x y
|
|
let ( >/ ) (x:bignum) y = x > y
|
|
let ( </ ) (x:bignum) y = x < y
|
|
let ( <=/ ) (x:bignum) y = x <= y
|
|
let ( >=/ ) (x:bignum) y = x >= y
|
|
|
|
|
|
let compare_num (x:bignum) y = compare x y
|
|
let max_num (x:bignum) y = max x y
|
|
let min_num (x:bignum) y = min x y
|
|
let to_float (n:bignum) = float n
|
|
|
|
let ( <>/ ) x y = not ((compare_num x y) = 0)
|
|
let ( =/ ) x y = ((compare_num x y) = 0)
|
|
|
|
let big_int_of_num(n) = BigNum.ToBigInt n
|
|
let num_of_big_int(x) = Big_int x
|
|
let float_of_num(x:bignum) = float x
|
|
let int_of_num(x:bignum) = int x
|
|
|
|
let neg (x:bignum) = - x
|
|
let add (x:bignum) y = x + y
|
|
let sub (x:bignum) y = x - y
|
|
let mul (x:bignum) y = x * y
|
|
let div (x:bignum) y = x / y
|
|
let pow (x:bignum) y = BigNum.PowN(x,y)
|
|
|
|
let string_of_num (x:bignum) = x.ToString()
|
|
let num_of_string (s:string) = BigNum.Parse(s)
|
|
|