packages feed

ychr-0.1.0.0: test/golden/arith_float/arith_float.chr

:- module(arith_float, [t/2, type(tags/0)]).
:- use_module(prelude).
:- chr_constraint t/2.
:- chr_type tags ---> add_pos ; add_zero ; add_neg ; sub_pos ; sub_neg ; mul ; mul_neg ; mul_zero ; div_basic ; div_whole ; div_neg ; small ; large ; neg_zero_add.

t(add_pos, R)      <=> R is 1.5 + 2.25.
t(add_zero, R)     <=> R is 0.0 + 3.5.
t(add_neg, R)      <=> R is 1.5 + (-2.5).
t(sub_pos, R)      <=> R is 5.5 - 1.25.
t(sub_neg, R)      <=> R is 1.0 - 5.0.
t(mul, R)          <=> R is 2.5 * 4.0.
t(mul_neg, R)      <=> R is 2.5 * (-2.0).
t(mul_zero, R)     <=> R is 3.14 * 0.0.
t(div_basic, R)    <=> R is 10.0 / 4.0.
t(div_whole, R)    <=> R is 8.0 / 2.0.
t(div_neg, R)      <=> R is 10.0 / (-4.0).
t(small, R)        <=> R is 1.0 / 1000000.0.
t(large, R)        <=> R is 100000.0 * 100000.0.
t(neg_zero_add, R) <=> R is (-0.0) + 0.0.