summaryrefslogtreecommitdiff log msg author committer range
path: root/lib/math/fpmath.myr
diff options
 context: 12345678910152025303540 space: includeignore mode: unifiedssdiffstat only
author committer S. Gilles 2018-05-10 10:42:25 -0400 S. Gilles 2018-05-10 10:42:25 -0400 66a472dc689c3a7b2b8f077fdf01c0dc2fdc1f7d (patch) ed949586ac1c84b852324941b0e730064cc6b898 /lib/math/fpmath.myr 3853fa79b7d297f4bd3aaf318a147a95dd088bc9 (diff) mc-66a472dc689c3a7b2b8f077fdf01c0dc2fdc1f7d.tar.gz
Use x as input variable instead of f.
Some algorithm descriptions use f as an auxiliary variable. Since we attempt to match variable naming to the relevant algorithm description, this becomes a problem. For uniformity, change everywhere.
Diffstat (limited to 'lib/math/fpmath.myr')
-rw-r--r--lib/math/fpmath.myr97
1 files changed, 53 insertions, 44 deletions
 diff --git a/lib/math/fpmath.myr b/lib/math/fpmath.myrindex bfc6b11..0c8e8d6 100644--- a/lib/math/fpmath.myr+++ b/lib/math/fpmath.myr@@ -4,8 +4,8 @@ pkg math = trait fpmath @f = /* exp-impl */- exp : (f : @f -> @f)- expm1 : (f : @f -> @f)+ exp : (x : @f -> @f)+ expm1 : (x : @f -> @f) /* fma-impl */ fma : (x : @f, y : @f, z : @f -> @f)@@ -15,24 +15,24 @@ pkg math = horner_polyu : (x : @f, a : @u[:] -> @f) /* scale2-impl */- scale2 : (f : @f, m : @i -> @f)+ scale2 : (x : @f, m : @i -> @f) /* sqrt-impl */- sqrt : (f : @f -> @f)+ sqrt : (x : @f -> @f) /* sum-impl */ kahan_sum : (a : @f[:] -> @f) priest_sum : (a : @f[:] -> @f) /* trunc-impl */- trunc : (f : @f -> @f)- ceil : (f : @f -> @f)- floor : (f : @f -> @f)+ trunc : (x : @f -> @f)+ ceil : (x : @f -> @f)+ floor : (x : @f -> @f) ;; trait roundable @f -> @i = /* round-impl */- rn : (f : @f -> @i)+ rn : (x : @f -> @i) ;; impl std.equatable flt32@@ -60,58 +60,67 @@ impl std.equatable flt64 = ;; impl roundable flt32 -> int32 =- rn = {f : flt32; -> rn32(f) }+ rn = {x : flt32; -> rn32(x) } ;; impl roundable flt64 -> int64 =- rn = {f : flt64; -> rn64(f) }+ rn = {x : flt64; -> rn64(x) } ;; impl fpmath flt32 = fma = {x, y, z; -> fma32(x, y, z)} - exp = {f; -> exp32(f)}- expm1 = {f; -> expm132(f)}+ exp = {x; -> exp32(x)}+ expm1 = {x; -> expm132(x)} - horner_poly = {f, a; -> horner_poly32(f, a)}- horner_polyu = {f, a; -> horner_polyu32(f, a)}+ log = {x; -> log32(x)}+ log1p = {x; -> log1p32(x)} - scale2 = {f, m; -> scale232(f, m)}+ horner_poly = {x, a; -> horner_poly32(x, a)}+ horner_polyu = {x, a; -> horner_polyu32(x, a)} - sqrt = {f; -> sqrt32(f)}+ scale2 = {x, m; -> scale232(x, m)}++ sqrt = {x; -> sqrt32(x)} kahan_sum = {l; -> kahan_sum32(l) } priest_sum = {l; -> priest_sum32(l) } - trunc = {f; -> trunc32(f)}- floor = {f; -> floor32(f)}- ceil = {f; -> ceil32(f)}+ trunc = {x; -> trunc32(x)}+ floor = {x; -> floor32(x)}+ ceil = {x; -> ceil32(x)} ;; impl fpmath flt64 = fma = {x, y, z; -> fma64(x, y, z)} - exp = {f; -> exp64(f)}- expm1 = {f; -> expm164(f)}+ exp = {x; -> exp64(x)}+ expm1 = {x; -> expm164(x)}++ log = {x; -> log64(x)}+ log1p = {x; -> log1p64(x)} - horner_poly = {f, a; -> horner_poly64(f, a)}- horner_polyu = {f, a; -> horner_polyu64(f, a)}+ horner_poly = {x, a; -> horner_poly64(x, a)}+ horner_polyu = {x, a; -> horner_polyu64(x, a)} - scale2 = {f, m; -> scale264(f, m)}+ scale2 = {x, m; -> scale264(x, m)} - sqrt = {f; -> sqrt64(f)}+ sqrt = {x; -> sqrt64(x)} kahan_sum = {l; -> kahan_sum64(l) } priest_sum = {l; -> priest_sum64(l) } - trunc = {f; -> trunc64(f)}- floor = {f; -> floor64(f)}- ceil = {f; -> ceil64(f)}+ trunc = {x; -> trunc64(x)}+ floor = {x; -> floor64(x)}+ ceil = {x; -> ceil64(x)} ;; -extern const rn32 : (f : flt32 -> int32)-extern const rn64 : (f : flt64 -> int64)+extern const rn32 : (x : flt32 -> int32)+extern const rn64 : (x : flt64 -> int64)++extern const fma32 : (x : flt32, y : flt32, z : flt32 -> flt32)+extern const fma64 : (x : flt64, y : flt64, z : flt64 -> flt64) extern const exp32 : (x : flt32 -> flt32) extern const exp64 : (x : flt64 -> flt64)@@ -119,17 +128,17 @@ extern const exp64 : (x : flt64 -> flt64) extern const expm132 : (x : flt32 -> flt32) extern const expm164 : (x : flt64 -> flt64) -extern const fma32 : (x : flt32, y : flt32, z : flt32 -> flt32)-extern const fma64 : (x : flt64, y : flt64, z : flt64 -> flt64)+extern const log32 : (x : flt32 -> flt32)+extern const log64 : (x : flt64 -> flt64) -extern const horner_poly32 : (f : flt32, a : flt32[:] -> flt32)-extern const horner_poly64 : (f : flt64, a : flt64[:] -> flt64)+extern const horner_poly32 : (x : flt32, a : flt32[:] -> flt32)+extern const horner_poly64 : (x : flt64, a : flt64[:] -> flt64) -extern const horner_polyu32 : (f : flt32, a : uint32[:] -> flt32)-extern const horner_polyu64 : (f : flt64, a : uint64[:] -> flt64)+extern const horner_polyu32 : (x : flt32, a : uint32[:] -> flt32)+extern const horner_polyu64 : (x : flt64, a : uint64[:] -> flt64) -extern const scale232 : (f : flt32, m : int32 -> flt32)-extern const scale264 : (f : flt64, m : int64 -> flt64)+extern const scale232 : (x : flt32, m : int32 -> flt32)+extern const scale264 : (x : flt64, m : int64 -> flt64) extern const sqrt32 : (x : flt32 -> flt32) extern const sqrt64 : (x : flt64 -> flt64)@@ -140,11 +149,11 @@ extern const kahan_sum64 : (l : flt64[:] -> flt64) extern const priest_sum32 : (l : flt32[:] -> flt32) extern const priest_sum64 : (l : flt64[:] -> flt64) -extern const trunc32 : (f : flt32 -> flt32)-extern const trunc64 : (f : flt64 -> flt64)+extern const trunc32 : (x : flt32 -> flt32)+extern const trunc64 : (x : flt64 -> flt64) -extern const floor32 : (f : flt32 -> flt32)-extern const floor64 : (f : flt64 -> flt64)+extern const floor32 : (x : flt32 -> flt32)+extern const floor64 : (x : flt64 -> flt64) -extern const ceil32 : (f : flt32 -> flt32)-extern const ceil64 : (f : flt64 -> flt64)+extern const ceil32 : (x : flt32 -> flt32)+extern const ceil64 : (x : flt64 -> flt64)