blob: 151a326e42c248b26b1a29d34f80e08c069e8fd7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
package com.seaofnodes.simple.node;
import com.seaofnodes.simple.type.Type;
import com.seaofnodes.simple.type.TypeFloat;
import com.seaofnodes.simple.type.TypeInteger;
public class ToFloatNode extends Node {
public ToFloatNode(Node lhs) { super(null, lhs); }
@Override public Tag serialTag() { return Tag.ToFloat; }
@Override protected String format() { return "(flt)%1"; }
@Override
public Type compute() {
if( in(1)._type.isHigh() ) return TypeFloat.F64.dual();
if( in(1)._type == Type.NIL ) return TypeFloat.FZERO;
if( in(1)._type instanceof TypeInteger i0 && i0.isConstant() )
return TypeFloat.constant(i0.value());
return TypeFloat.F64;
}
@Override public Node idealize() { return null; }
@Override Node copy(Node lhs, Node rhs) { return new ToFloatNode(lhs); }
}
|