:- module float. :- pragma termination_info(float:'+'((builtin:in), (builtin:in)) = (builtin:uo), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(float:'-'((builtin:in), (builtin:in)) = (builtin:uo), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(float:'*'((builtin:in), (builtin:in)) = (builtin:uo), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(float:'/'((builtin:in), (builtin:in)) = (builtin:uo), finite(0, [no, no, no]), can_loop). :- pragma termination_info(float:unchecked_quotient((builtin:in), (builtin:in)) = (builtin:uo), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(float:'+'((builtin:in)) = (builtin:uo), finite(0, [no, no]), cannot_loop). :- pragma termination_info(float:'-'((builtin:in)) = (builtin:uo), finite(0, [no, no]), cannot_loop). :- pragma termination_info(float:'<'((builtin:in), (builtin:in)), finite(0, [no, no]), cannot_loop). :- pragma termination_info(float:'>'((builtin:in), (builtin:in)), finite(0, [no, no]), cannot_loop). :- pragma termination_info(float:'=<'((builtin:in), (builtin:in)), finite(0, [no, no]), cannot_loop). :- pragma termination_info(float:'>='((builtin:in), (builtin:in)), finite(0, [no, no]), cannot_loop). :- pragma termination_info(float:float((builtin:in)) = (builtin:out), infinite, cannot_loop). :- pragma termination_info(float:ceiling_to_int((builtin:in)) = (builtin:out), infinite, cannot_loop). :- pragma termination_info(float:floor_to_int((builtin:in)) = (builtin:out), infinite, cannot_loop). :- pragma termination_info(float:round_to_int((builtin:in)) = (builtin:out), infinite, cannot_loop). :- pragma termination_info(float:truncate_to_int((builtin:in)) = (builtin:out), infinite, cannot_loop). :- pragma termination_info(float:abs((builtin:in)) = (builtin:out), finite(0, [yes, no]), cannot_loop). :- pragma termination_info(float:max((builtin:in), (builtin:in)) = (builtin:out), finite(0, [yes, yes, no]), cannot_loop). :- pragma termination_info(float:min((builtin:in), (builtin:in)) = (builtin:out), finite(0, [yes, yes, no]), cannot_loop). :- pragma termination_info(float:pow((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, no, no]), can_loop). :- pragma termination_info(float:hash((builtin:in)) = (builtin:out), infinite, cannot_loop). :- pragma termination_info((float:max) = (builtin:out), infinite, cannot_loop). :- pragma termination_info((float:min) = (builtin:out), infinite, cannot_loop). :- pragma termination_info((float:epsilon) = (builtin:out), infinite, cannot_loop). :- pragma termination_info((float:radix) = (builtin:out), infinite, cannot_loop). :- pragma termination_info((float:mantissa_digits) = (builtin:out), infinite, cannot_loop). :- pragma termination_info((float:min_exponent) = (builtin:out), infinite, cannot_loop). :- pragma termination_info((float:max_exponent) = (builtin:out), infinite, cannot_loop). :- pragma termination_info((float:domain_checks), finite(0, []), cannot_loop).