Fix precision warnings when FloatDefault is 64 bit

When VTKm_USE_DOUBLE_PRECISION is on (not the default), then
vtkm::FloatDefault is set to 64 bit values. There was some code that was
coded for 32 bit and never checked for 64 bit (on all compilers).
This commit is contained in:
Kenneth Moreland 2016-08-26 09:33:37 -06:00
parent b568dcee62
commit 893f3115f2
2 changed files with 13 additions and 13 deletions

@ -66,11 +66,11 @@ public:
typedef _1 InputDomain;
const vtkm::Id xdim, ydim, zdim;
const vtkm::FloatDefault xmin, ymin, zmin, xmax, ymax, zmax;
const vtkm::Float32 xmin, ymin, zmin, xmax, ymax, zmax;
const vtkm::Id cellsPerLayer;
VTKM_CONT_EXPORT
TangleField(const vtkm::Id3 dims, const vtkm::FloatDefault mins[3], const vtkm::FloatDefault maxs[3]) : xdim(dims[0]), ydim(dims[1]), zdim(dims[2]),
TangleField(const vtkm::Id3 dims, const vtkm::Float32 mins[3], const vtkm::Float32 maxs[3]) : xdim(dims[0]), ydim(dims[1]), zdim(dims[2]),
xmin(mins[0]), ymin(mins[1]), zmin(mins[2]), xmax(maxs[0]), ymax(maxs[1]), zmax(maxs[2]), cellsPerLayer((xdim) * (ydim)) { };
VTKM_EXEC_EXPORT
@ -80,9 +80,9 @@ public:
const vtkm::Id y = (vertexId / (xdim)) % (ydim);
const vtkm::Id z = vertexId / cellsPerLayer;
const vtkm::FloatDefault fx = static_cast<vtkm::FloatDefault>(x) / static_cast<vtkm::FloatDefault>(xdim-1);
const vtkm::FloatDefault fy = static_cast<vtkm::FloatDefault>(y) / static_cast<vtkm::FloatDefault>(xdim-1);
const vtkm::FloatDefault fz = static_cast<vtkm::FloatDefault>(z) / static_cast<vtkm::FloatDefault>(xdim-1);
const vtkm::Float32 fx = static_cast<vtkm::Float32>(x) / static_cast<vtkm::Float32>(xdim-1);
const vtkm::Float32 fy = static_cast<vtkm::Float32>(y) / static_cast<vtkm::Float32>(xdim-1);
const vtkm::Float32 fz = static_cast<vtkm::Float32>(z) / static_cast<vtkm::Float32>(xdim-1);
const vtkm::Float32 xx = 3.0f*(xmin+(xmax-xmin)*(fx));
const vtkm::Float32 yy = 3.0f*(ymin+(ymax-ymin)*(fy));
@ -100,8 +100,8 @@ vtkm::cont::DataSet MakeIsosurfaceTestDataSet(vtkm::Id3 dims)
const vtkm::Id3 vdims(dims[0] + 1, dims[1] + 1, dims[2] + 1);
vtkm::FloatDefault mins[3] = {-1.0f, -1.0f, -1.0f};
vtkm::FloatDefault maxs[3] = {1.0f, 1.0f, 1.0f};
vtkm::Float32 mins[3] = {-1.0f, -1.0f, -1.0f};
vtkm::Float32 maxs[3] = {1.0f, 1.0f, 1.0f};
vtkm::cont::ArrayHandle<vtkm::Float32> fieldArray;
vtkm::cont::ArrayHandleCounting<vtkm::Id> vertexCountImplicitArray(0, 1, vdims[0]*vdims[1]*vdims[2]);

@ -469,7 +469,7 @@ class SamplerCellAssocRect : public vtkm::worklet::WorkletMapField
LocateCell(vtkm::Vec<vtkm::Id,3> &cell,
const vtkm::Vec<vtkm::Float32,3> &point,
const vtkm::Vec<vtkm::Float32,3> &rayDir,
vtkm::FloatDefault *invSpacing) const
vtkm::Float32 *invSpacing) const
{
for(vtkm::Int32 dim = 0; dim < 3; ++dim)
{
@ -487,7 +487,7 @@ class SamplerCellAssocRect : public vtkm::worklet::WorkletMapField
}
else notFound = false;
}
invSpacing[dim] = 1.f / (CoordPortals[dim].Get(cell[dim]+1) - CoordPortals[dim].Get(cell[dim]));
invSpacing[dim] = 1.f / static_cast<vtkm::Float32>(CoordPortals[dim].Get(cell[dim]+1) - CoordPortals[dim].Get(cell[dim]));
}
}
@ -513,7 +513,7 @@ class SamplerCellAssocRect : public vtkm::worklet::WorkletMapField
vtkm::Float32 currentDistance = minDistance + SampleDistance; //Move the ray forward some epsilon
vtkm::Float32 lastSample = maxDistance - SampleDistance;
vtkm::Vec<vtkm::Float32,3> sampleLocation = CameraPosition + currentDistance * rayDir;
vtkm::FloatDefault invSpacing[3];
vtkm::Float32 invSpacing[3];
vtkm::Vec<vtkm::Id,8> cellIndices;
/*LocateCell(currentCell,
sampleLocation,
@ -677,7 +677,7 @@ class SamplerCellAssocRect : public vtkm::worklet::WorkletMapField
LocateCell(vtkm::Vec<vtkm::Id,3> &cell,
const vtkm::Vec<vtkm::Float32,3> &point,
const vtkm::Vec<vtkm::Float32,3> &rayDir,
vtkm::FloatDefault *invSpacing) const
vtkm::Float32 *invSpacing) const
{
for(vtkm::Int32 dim = 0; dim < 3; ++dim)
{
@ -700,7 +700,7 @@ class SamplerCellAssocRect : public vtkm::worklet::WorkletMapField
}
else notFound = false;
}
invSpacing[dim] = 1.f / (CoordPortals[dim].Get(cell[dim]+1) - CoordPortals[dim].Get(cell[dim]));
invSpacing[dim] = 1.f / static_cast<vtkm::Float32>(CoordPortals[dim].Get(cell[dim]+1) - CoordPortals[dim].Get(cell[dim]));
}
}
@ -727,7 +727,7 @@ class SamplerCellAssocRect : public vtkm::worklet::WorkletMapField
vtkm::Float32 currentDistance = minDistance + SampleDistance; //Move the ray forward some epsilon
vtkm::Float32 lastSample = maxDistance - SampleDistance;
vtkm::Vec<vtkm::Float32,3> sampleLocation = CameraPosition + currentDistance * rayDir;
vtkm::FloatDefault invSpacing[3];
vtkm::Float32 invSpacing[3];
vtkm::Vec<vtkm::Id,8> cellIndices;
/*