float型の演算で、小数点以下4桁以上の演算が記述できないバグ
Closed this issue · 0 comments
imaren commented
a(X) :- Y=X+.0.0001|b(Y).
a(1.0).
を実行すると、
terminate called after throwing an instance of 'std::length_error'
what(): basic_string::_M_create
Aborted (core dumped)
と表示され実行が失敗する。
小数点以下が3桁の場合、つまり
a(X) :- Y=X+.0.001|b(Y).
a(1.0).
の場合は失敗しない。
また、
a(X) :- Y=X+.1.0e-4|b(Y).
a(1.0).
のように記述した場合も同様に失敗する。
(コンパイルは成功するため)
また、 -.
, *.
, /.
についても同様である。