     public func smoothstep(_ edge0: double3, _ edge1: double3) -> double3 {
         return simd.smoothstep(self, edge0: edge0, edge1: edge1)
     }
+    public func cross(_ y: double3) -> double3 { return simd.cross(self, y) }
 }
 
 public typealias dvec4 = double4

}

public typealias FloatVector2 = FloatVector & Vector2
public typealias FloatVector3 = FloatVector & Vector3
public typealias FloatVector4 = FloatVector & Vector4

public typealias vec2 = float2

    public func smoothstep(_ edge0: float3, _ edge1: float3) -> float3 {
        return simd.smoothstep(self, edge0: edge0, edge1: edge1)
    }
    public func cross(_ y: float3) -> float3 { return simd.cross(self, y) }
}

public typealias vec4 = float4
