Home My Page Projects Code Snippets Project Openings 3D graphics for Standard ML
Summary Activity SCM

SCM Repository

[sml3d] Annotation of /src/common/float.sml
ViewVC logotype

Annotation of /src/common/float.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 33 - (view) (download)

1 : jhr 23 (* float.sml
2 :     *
3 :     * COPYRIGHT (c) 2008 John Reppy (http://www.cs.uchicago.edu/~jhr)
4 :     * All rights reserved.
5 :     *
6 :     * Single-precision floating-point numbers.
7 :     *)
8 :    
9 :     structure Float : sig
10 :    
11 : jhr 31 type float = SML3dTypes.float
12 : jhr 23
13 :     val M_E : float (* base of natural logarithm, e *)
14 :     val M_LOG2E : float (* log2(e) *)
15 :     val M_LOG10E : float (* log10(e) *)
16 :     val M_LN2 : float (* ln(2) *)
17 :     val M_LN10 : float (* ln(10) *)
18 :     val M_PI : float (* pi *)
19 :     val M_PI_2 : float (* pi / 2 *)
20 :     val M_PI_4 : float (* pi / 4 *)
21 :     val M_1_PI : float (* 1 / pi *)
22 :     val M_2_PI : float (* 2 / pi *)
23 :     val M_2_SQRTPI : float (* 2 / sqrt(pi) *)
24 :     val M_SQRT2 : float (* sqrt(2) *)
25 :     val M_SQRT1_2 : float (* sqrt(1/2) *)
26 :    
27 : jhr 31 val abs : float -> float
28 :     val min : float * float -> float
29 :     val max : float * float -> float
30 : jhr 23
31 :     (* conversions to/from radians *)
32 :     val toRadians : float -> float
33 :     val toDegrees : float -> float
34 :    
35 :     (* math functions in single-precision *)
36 :     val sqrt : float -> float
37 :     val sin : float -> float
38 :     val cos : float -> float
39 :     val tan : float -> float
40 :     val asin : float -> float
41 :     val acos : float -> float
42 :     val atan : float -> float
43 :     val atan2 : float * float -> float
44 :     val exp : float -> float
45 :     val pow : float * float -> float
46 :     val ln : float -> float
47 :     val log10 : float -> float
48 :     val sinh : float -> float
49 :     val cosh : float -> float
50 :     val tanh : float -> float
51 :    
52 : jhr 31 (* string conversions *)
53 :     val fromString : string -> float option
54 :     val toString : float -> string
55 :    
56 : jhr 23 end = struct
57 :    
58 : jhr 31 type float = SML3dTypes.float
59 : jhr 23
60 :     open Real32.Math
61 :    
62 : jhr 33 val M_E : float = 2.71828182845904523536028747135266250 (* e *)
63 :     val M_LOG2E : float = 1.44269504088896340735992468100189214 (* log 2e *)
64 :     val M_LOG10E : float = 0.434294481903251827651128918916605082 (* log 10e *)
65 :     val M_LN2 : float = 0.693147180559945309417232121458176568 (* log e2 *)
66 :     val M_LN10 : float = 2.30258509299404568401799145468436421 (* log e10 *)
67 :     val M_PI : float = 3.14159265358979323846264338327950288 (* pi *)
68 :     val M_PI_2 : float = 1.57079632679489661923132169163975144 (* pi/2 *)
69 :     val M_PI_4 : float = 0.785398163397448309615660845819875721 (* pi/4 *)
70 :     val M_1_PI : float = 0.318309886183790671537767526745028724 (* 1/pi *)
71 :     val M_2_PI : float = 0.636619772367581343075535053490057448 (* 2/pi *)
72 :     val M_2_SQRTPI : float = 1.12837916709551257389615890312154517 (* 2/sqrt(pi) *)
73 :     val M_SQRT2 : float = 1.41421356237309504880168872420969808 (* sqrt(2) *)
74 :     val M_SQRT1_2 : float = 0.707106781186547524400844362104849039 (* 1/sqrt(2) *)
75 : jhr 23
76 :     val abs = Real32.abs
77 :     val min = Real32.min
78 :     val max = Real32.max
79 :    
80 :     local
81 :     val m_pi_180 = M_PI / 180.0
82 :     val m_180_Pi = 180.0 * M_1_PI
83 :     in
84 :     fun toRadians deg = m_pi_180 * deg
85 : jhr 33 fun toDegrees rad = m_180_Pi * rad
86 : jhr 23 end (* local *)
87 :    
88 : jhr 31 (* string conversions *)
89 :     val fromString = Real32.fromString
90 :     val toString = Real32.toString
91 :    
92 : jhr 23 end

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0