DoublePrecision filter just returns devices that do support double precision arithmetics. So if Device 1 (Bar) does is single-precision-only, you would get zero devices out of (Position(1) && DoublePrecision).

You don't select precision level on a device by using a filter. You just use either `float` or `double` (where supported) in your program.