lmntal/slim

float型の演算で、小数点以下4桁以上の演算が記述できないバグ

Closed this issue · 0 comments

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).

のように記述した場合も同様に失敗する。
(コンパイルは成功するため)
また、 -., *., /. についても同様である。