Carp/core/Double.carp

62 lines
1.8 KiB
Plaintext
Raw Normal View History

2017-06-26 12:15:03 +03:00
(defmodule Double
2017-11-22 20:25:03 +03:00
(def π 3.141592653589793)
(def e 2.718281828459045)
2017-10-24 14:52:32 +03:00
(register = (Fn [Double Double] Bool))
(register < (Fn [Double Double] Bool))
(register > (Fn [Double Double] Bool))
(register neg (Fn [Double] Double))
2017-06-26 12:15:03 +03:00
(register + (Fn [Double Double] Double))
(register - (Fn [Double Double] Double))
(register * (Fn [Double Double] Double))
(register / (Fn [Double Double] Double))
(register to-int (Fn [Double] Int))
(register from-int (Fn [Int] Double))
(register to-float (Fn [Double] Float))
(register from-float (Fn [Float] Double))
2017-06-26 12:15:03 +03:00
(register sin (Fn [Double] Double))
(register cos (Fn [Double] Double))
(register tan (Fn [Double] Double))
2017-10-20 01:44:25 +03:00
(register acos (Fn [Double] Double))
(register asin (Fn [Double] Double))
(register atan (Fn [Double] Double))
(register atan2 (Fn [Double Double] Double))
(register cosh (Fn [Double] Double))
(register sinh (Fn [Double] Double))
(register tanh (Fn [Double] Double))
(register exp (Fn [Double] Double))
(register frexp (Fn [Double (Ref Int)] Double))
(register ldexp (Fn [Double Int] Double))
(register log (Fn [Double] Double))
(register log10 (Fn [Double] Double))
(register modf (Fn [Double (Ref Double)] Double))
(register pow (Fn [Double Double] Double))
(register sqrt (Fn [Double] Double))
2017-10-10 21:13:58 +03:00
(register str (Fn [Double] String))
2017-11-06 20:08:07 +03:00
(register floor (Fn [Double] Double))
(register ceil (Fn [Double] Double))
(register mod (Fn [Double Double] Double))
2017-10-19 19:34:44 +03:00
(register copy (Fn [(Ref Double)] Double))
2017-11-07 17:06:47 +03:00
(register abs (Fn [Double] Double))
2017-10-20 01:44:25 +03:00
(defn clamp [min, max, val]
(if (> val max)
max
(if (< val min)
min
val)))
2017-10-24 14:52:32 +03:00
(defn approx [x y]
(if (> x y)
(< (- x y) 0.00001)
(< (- y x) 0.00001)))
2017-11-14 20:07:35 +03:00
(defn /= [x y]
(not (Double.= x y)))
(defn zero []
0.0)
(defn add-ref [x y]
(+ @x @y))
2017-10-24 14:52:32 +03:00
)