1. A non-transitory computer readable medium having instructions stored thereon that, when executed by a processor, causes the processor to assign a value to a first floating point variable of a constraint satisfaction problem that comprises a plurality of variables and a plurality of constraints, wherein the first floating point variable has a first domain, the instructions comprising: determining if a predetermined value can be assigned to the first floating point variable if the predetermined value is in the first domain; if the predetermined value is not in the first domain, determining if a first bound of the first domain can be assigned to the first floating point variable; and assigning the value of the first floating point variable using domain splitting if the predetermined value cannot be assigned to the first floating point variable and the first bound of the first domain cannot be assigned to the first floating point variable.