From febfa99c2823219c2e76d2c73b1fd8db8f6c9918 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Mon, 7 May 2018 01:37:38 -0400 Subject: - Implemented Deg functionality in pure Lux. --- .../translation/scheme/procedure/common.jvm.lux | 41 ---------------------- .../luxc/lang/translation/scheme/runtime.jvm.lux | 16 +-------- 2 files changed, 1 insertion(+), 56 deletions(-) (limited to 'new-luxc/source/luxc/lang/translation/scheme') diff --git a/new-luxc/source/luxc/lang/translation/scheme/procedure/common.jvm.lux b/new-luxc/source/luxc/lang/translation/scheme/procedure/common.jvm.lux index 67ec0e95c..81d753b7b 100644 --- a/new-luxc/source/luxc/lang/translation/scheme/procedure/common.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/scheme/procedure/common.jvm.lux @@ -237,9 +237,6 @@ [int//min ("lux int min")] [int//max ("lux int max")] - - [deg//min 0] - [deg//max -1] ) (do-template [ ] @@ -262,14 +259,6 @@ [int//mul _.*] [int//div _.quotient] [int//rem _.remainder] - - [deg//add _.+] - [deg//sub _.-] - [deg//rem _.-] - [deg//scale _.*] - [deg//mul _.*] - [deg//div _.quotient] - [deg//reciprocal _.quotient] ) (do-template [ ] @@ -296,19 +285,8 @@ [int//= _.=] [int//< _.<] - - [deg//= _.=] - [deg//< _.<] ) -(def: deg//to-frac - Unary - (let [f2^32 (_.arithmetic-shift (_.int 32) (_.int 1))] - (|>> (_.arithmetic-shift (_.int -32)) - (_.bit-and (_.int (hex "7FFFFFFFFFFFFFFF"))) - (_./ f2^32) - (_./ (_.float 1.0))))) - (def: int//char (|>> (_.apply1 (_.global "integer->char")) (_.apply1 (_.global "string")))) @@ -328,23 +306,6 @@ (install "to-frac" (unary (|>> (_./ (_.float 1.0))))) (install "char" (unary int//char))))) -(def: deg-procs - Bundle - (<| (prefix "deg") - (|> (dict.new text.Hash) - (install "+" (binary deg//add)) - (install "-" (binary deg//sub)) - (install "*" (binary deg//mul)) - (install "/" (binary deg//div)) - (install "%" (binary deg//rem)) - (install "=" (binary deg//=)) - (install "<" (binary deg//<)) - (install "scale" (binary deg//scale)) - (install "reciprocal" (binary deg//reciprocal)) - (install "min" (nullary deg//min)) - (install "max" (nullary deg//max)) - (install "to-frac" (unary deg//to-frac))))) - (def: frac-procs Bundle (<| (prefix "frac") @@ -362,7 +323,6 @@ (install "not-a-number" (nullary frac//not-a-number)) (install "positive-infinity" (nullary frac//positive-infinity)) (install "negative-infinity" (nullary frac//negative-infinity)) - (install "to-deg" (unary runtimeT.frac//to-deg)) (install "to-int" (unary (_.apply1 (_.global "exact")))) (install "encode" (unary (_.apply1 (_.global "number->string")))) (install "decode" (unary runtimeT.frac//decode))))) @@ -492,7 +452,6 @@ (|> lux-procs (dict.merge bit-procs) (dict.merge int-procs) - (dict.merge deg-procs) (dict.merge frac-procs) (dict.merge text-procs) (dict.merge array-procs) diff --git a/new-luxc/source/luxc/lang/translation/scheme/runtime.jvm.lux b/new-luxc/source/luxc/lang/translation/scheme/runtime.jvm.lux index e8016eb0a..c4cd0a909 100644 --- a/new-luxc/source/luxc/lang/translation/scheme/runtime.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/scheme/runtime.jvm.lux @@ -236,19 +236,6 @@ Runtime (_.begin (list @@bit//logical-right-shift))) -(def: int-high (bit//logical-right-shift (_.int 32))) -(def: int-low (_.bit-and (_.int (hex "FFFFFFFF")))) - -(runtime: (frac//to-deg input) - (with-vars [two32 shifted] - (_.let* (list [two32 (|> (_.float 2.0) (_.expt (_.float 32.0)))] - [shifted (|> (@@ input) (_.mod (_.float 1.0)) (_.* (@@ two32)))]) - (let [low (|> (@@ shifted) (_.mod (_.float 1.0)) (_.* (@@ two32)) as-integer) - high (|> (@@ shifted) as-integer)] - (|> high - (_.arithmetic-shift (_.int 32)) - (_.+ low)))))) - (runtime: (frac//decode input) (with-vars [output] (_.let (list [output ((_.apply1 (_.global "string->number")) (@@ input))]) @@ -260,8 +247,7 @@ (def: runtime//frac Runtime (_.begin - (list @@frac//to-deg - @@frac//decode))) + (list @@frac//decode))) ## (def: runtime//text ## Runtime -- cgit v1.2.3