add linearfloat class, implement gate values