Updated README.
[scheme.forth.jl.git] / float.4th
1 \ Floating point arithmetic
2
3 ( Cheating for now by using forth.jl CODE/END-CODE to
4   access Julia's floating point support.  This isn't
5   at all portable.  That said, the year is 2016 and most
6   CPUs implement these operations - even the trig functions,
7   so I don't feel too bad! )
8
9 CODE f+
10     b = reinterpret(Float64, popPS())
11     a = reinterpret(Float64, popPS())
12     pushPS(reinterpret(Int64, a+b))
13 END-CODE
14
15 CODE f-
16     b = reinterpret(Float64, popPS())
17     a = reinterpret(Float64, popPS())
18     pushPS(reinterpret(Int64, a-b))
19 END-CODE
20
21 CODE f*
22     b = reinterpret(Float64, popPS())
23     a = reinterpret(Float64, popPS())
24     pushPS(reinterpret(Int64, a*b))
25 END-CODE
26
27 CODE f/
28     b = reinterpret(Float64, popPS())
29     a = reinterpret(Float64, popPS())
30     pushPS(reinterpret(Int64, a/b))
31 END-CODE
32
33 ( addr len -- float )
34 CODE float-parse
35     len = popPS()
36     addr = popPS()
37     val = parse(Float64, getString(addr, len))
38     pushPS(reinterpret(Int64, val))
39 END-CODE
40
41 ( float -- )
42 CODE float-print
43     print(reinterpret(Float64, popPS()))
44 END-CODE