:- module bitmap. :- pragma termination_info(bitmap:new((builtin:in), (builtin:in)) = (bitmap:bitmap_uo), infinite, can_loop). :- pragma termination_info(bitmap:num_bits((bitmap:bitmap_ui)) = (builtin:out), infinite, can_loop). :- pragma termination_info(bitmap:num_bits((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(bitmap:set((bitmap:bitmap_di), (builtin:in)) = (bitmap:bitmap_uo), infinite, can_loop). :- pragma termination_info(bitmap:clear((bitmap:bitmap_di), (builtin:in)) = (bitmap:bitmap_uo), infinite, can_loop). :- pragma termination_info(bitmap:flip((bitmap:bitmap_di), (builtin:in)) = (bitmap:bitmap_uo), infinite, can_loop). :- pragma termination_info(bitmap:unsafe_set((bitmap:bitmap_di), (builtin:in)) = (bitmap:bitmap_uo), infinite, can_loop). :- pragma termination_info(bitmap:unsafe_clear((bitmap:bitmap_di), (builtin:in)) = (bitmap:bitmap_uo), infinite, can_loop). :- pragma termination_info(bitmap:unsafe_flip((bitmap:bitmap_di), (builtin:in)) = (bitmap:bitmap_uo), infinite, can_loop). :- pragma termination_info(bitmap:is_set((bitmap:bitmap_ui), (builtin:in)), finite(0, [no, no]), can_loop). :- pragma termination_info(bitmap:is_set((builtin:in), (builtin:in)), finite(0, [no, no]), can_loop). :- pragma termination_info(bitmap:is_clear((bitmap:bitmap_ui), (builtin:in)), finite(0, [no, no]), can_loop). :- pragma termination_info(bitmap:is_clear((builtin:in), (builtin:in)), finite(0, [no, no]), can_loop). :- pragma termination_info(bitmap:unsafe_is_set((bitmap:bitmap_ui), (builtin:in)), finite(0, [no, no]), can_loop). :- pragma termination_info(bitmap:unsafe_is_set((builtin:in), (builtin:in)), finite(0, [no, no]), can_loop). :- pragma termination_info(bitmap:unsafe_is_clear((bitmap:bitmap_ui), (builtin:in)), finite(0, [no, no]), can_loop). :- pragma termination_info(bitmap:unsafe_is_clear((builtin:in), (builtin:in)), finite(0, [no, no]), can_loop). :- pragma termination_info(bitmap:get((bitmap:bitmap_ui), (builtin:in)) = (builtin:out), finite(0, [no, no, no]), can_loop). :- pragma termination_info(bitmap:get((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, no, no]), can_loop). :- pragma termination_info(bitmap:unsafe_get((bitmap:bitmap_ui), (builtin:in)) = (builtin:out), finite(0, [no, no, no]), can_loop). :- pragma termination_info(bitmap:unsafe_get((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, no, no]), can_loop). :- pragma termination_info(bitmap:copy((bitmap:bitmap_ui)) = (bitmap:bitmap_uo), infinite, cannot_loop). :- pragma termination_info(bitmap:complement((bitmap:bitmap_di)) = (bitmap:bitmap_uo), infinite, can_loop). :- pragma termination_info(bitmap:union((bitmap:bitmap_ui), (bitmap:bitmap_di)) = (bitmap:bitmap_uo), infinite, can_loop). :- pragma termination_info(bitmap:intersect((bitmap:bitmap_ui), (bitmap:bitmap_di)) = (bitmap:bitmap_uo), infinite, can_loop). :- pragma termination_info(bitmap:difference((bitmap:bitmap_ui), (bitmap:bitmap_di)) = (bitmap:bitmap_uo), infinite, can_loop). :- pragma termination_info(bitmap:resize((bitmap:bitmap_di), (builtin:in), (builtin:in)) = (bitmap:bitmap_uo), infinite, can_loop). :- pragma termination_info(bitmap:clear_filler_bits((bitmap:bitmap_di)) = (bitmap:bitmap_uo), infinite, can_loop). :- pragma termination_info(bitmap:complement_2((builtin:in), (bitmap:bitmap_di)) = (bitmap:bitmap_uo), infinite, can_loop). :- pragma termination_info(bitmap:int_offset((builtin:in)) = (builtin:out), finite(0, [no, no]), cannot_loop). :- pragma termination_info(bitmap:bitmask((builtin:in)) = (builtin:out), finite(0, [no, no]), cannot_loop).