import align from "hpf.newgen"
import distribute from "hpf.newgen"
import entity from "ri.newgen"
import entity_int from "ri.newgen"
import statement from "ri.newgen"
import reduction_operator from "reductions_private.newgen"
entities = list:entity*
entity_entities = entity->entities
renaming = old:entity x new:entity
statement_renamings = persistant statement->renaming*
statement_entities = persistant statement->entities
entitymap = entity->entity
overlap = lower:int x upper:int
overlapsmap = entity->overlap*
hpf_newdecl = { none , alpha , beta , gamma , delta }
hpf_newdecls = dimensions:hpf_newdecl*
alignmap = entity->align
distributemap = entity->distribute
newdeclmap = entity->hpf_newdecls
entity_status = new_host:entitymap x new_node:entitymap x old_host:entitymap x old_node:entitymap x referenced:entity_int
data_status = newdeclmap x alignmap x distributemap x arrays:entity* x templates:entity* x processors:entity*
numbers_status = numbermap:entity_int x arrays:int x templates:int x processors:int
dynamic_status = dynamics:entity_entities x primary:entitymap x renamings:statement_renamings x tokeep:statement_entities
remapping = renaming x referenced:entity*
hpfc_status = overlapsmap x data_status x numbers_status x entity_status x commons:entity* x dynamic_status x pures:entity* x ios:entity* x computed:remapping* x reductions:statement_entities
hpfc_reductions = initial:entity x replacement:entity x operator:reduction_operator