mirror of
https://gitlab.kitware.com/vtk/vtk-m
synced 2024-09-19 10:35:42 +00:00
Merge topic 'cleanup-gcc-warnings'
af7bba06 Refactor liner interpolation to use (1-w)*v0+w*v1 635f8c79 Add a CTestCustom file to to filter out warnings that cant be eliminated f74c0d3c Remove type conversion related warnings for GCC Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !351
This commit is contained in:
commit
ab1ac55b29
@ -107,6 +107,8 @@ option(VTKm_USE_64BIT_IDS "Use 64-bit indices." ON)
|
||||
if (VTKm_ENABLE_TESTING)
|
||||
enable_testing()
|
||||
include(CTest)
|
||||
configure_file(${VTKm_SOURCE_DIR}/CTestCustom.cmake.in
|
||||
${VTKm_BINARY_DIR}/CTestCustom.cmake @ONLY)
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
23
CTestCustom.cmake.in
Normal file
23
CTestCustom.cmake.in
Normal file
@ -0,0 +1,23 @@
|
||||
##============================================================================
|
||||
## Copyright (c) Kitware, Inc.
|
||||
## All rights reserved.
|
||||
## See LICENSE.txt for details.
|
||||
## This software is distributed WITHOUT ANY WARRANTY; without even
|
||||
## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
## PURPOSE. See the above copyright notice for more information.
|
||||
##
|
||||
## Copyright 2014 Sandia Corporation.
|
||||
## Copyright 2014 UT-Battelle, LLC.
|
||||
## Copyright 2014 Los Alamos National Security.
|
||||
##
|
||||
## Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
|
||||
## the U.S. Government retains certain rights in this software.
|
||||
##
|
||||
## Under the terms of Contract DE-AC52-06NA25396 with Los Alamos National
|
||||
## Laboratory (LANL), the U.S. Government retains certain rights in
|
||||
## this software.
|
||||
##============================================================================
|
||||
|
||||
list(APPEND CTEST_CUSTOM_WARNING_EXCEPTION
|
||||
"warning: ignoring loop annotation"
|
||||
)
|
@ -46,7 +46,7 @@ ValueType Lerp(const ValueType &value0,
|
||||
const ValueType &value1,
|
||||
const WeightType &weight)
|
||||
{
|
||||
return static_cast<ValueType>(value0 + weight * (value1-value0));
|
||||
return static_cast<ValueType>((WeightType(1)-weight)*value0+weight*value1);
|
||||
}
|
||||
template<typename ValueType, vtkm::IdComponent N, typename WeightType>
|
||||
VTKM_EXEC_CONT_EXPORT
|
||||
@ -54,7 +54,7 @@ vtkm::Vec<ValueType,N> Lerp(const vtkm::Vec<ValueType,N> &value0,
|
||||
const vtkm::Vec<ValueType,N> &value1,
|
||||
const WeightType &weight)
|
||||
{
|
||||
return value0 + static_cast<ValueType>(weight) * (value1-value0);
|
||||
return (WeightType(1)-weight)*value0+weight*value1;
|
||||
}
|
||||
template<typename ValueType, vtkm::IdComponent N>
|
||||
VTKM_EXEC_CONT_EXPORT
|
||||
@ -62,7 +62,8 @@ vtkm::Vec<ValueType,N> Lerp(const vtkm::Vec<ValueType,N> &value0,
|
||||
const vtkm::Vec<ValueType,N> &value1,
|
||||
const vtkm::Vec<ValueType,N> &weight)
|
||||
{
|
||||
return value0 + weight * (value1-value0);
|
||||
static const vtkm::Vec<ValueType,N> One(ValueType(1));
|
||||
return (One-weight)*value0+weight*value1;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@ -35,7 +35,7 @@ struct TemplatedTests
|
||||
|
||||
ValueType ExpectedValue(vtkm::Id index, ComponentType value)
|
||||
{
|
||||
return ValueType(ComponentType(index) + value);
|
||||
return ValueType(static_cast<ComponentType>(index+static_cast<vtkm::Id>(value)));
|
||||
}
|
||||
|
||||
template<class IteratorType>
|
||||
|
@ -37,7 +37,7 @@ struct TemplatedTests
|
||||
|
||||
ValueType ExpectedValue(vtkm::Id index, ComponentType value)
|
||||
{
|
||||
return ValueType(ComponentType(index) + value);
|
||||
return ValueType(static_cast<ComponentType>(index+static_cast<vtkm::Id>(value)));
|
||||
}
|
||||
|
||||
template<class IteratorType>
|
||||
|
@ -36,7 +36,7 @@ struct TemplatedTests
|
||||
|
||||
static ValueType ExpectedValue(vtkm::Id index, ComponentType value)
|
||||
{
|
||||
return ValueType(static_cast<ComponentType>(index) + value);
|
||||
return ValueType(static_cast<ComponentType>(index+static_cast<vtkm::Id>(value)));
|
||||
}
|
||||
|
||||
class ReadOnlyArrayPortal
|
||||
|
@ -97,11 +97,11 @@ void FillArray(std::vector<T> &arr,
|
||||
|
||||
switch (fillMethod)
|
||||
{
|
||||
case 0: xi = static_cast<T>(i); break;
|
||||
case 1: xi = static_cast<T>(i) / static_cast<vtkm::Float32>(size-1); break;
|
||||
case 2: xi = static_cast<T>(i*2); break;
|
||||
case 3: xi = static_cast<T>(i*0.1f); break;
|
||||
case 4: xi = static_cast<T>(i*i); break;
|
||||
case 0: break;
|
||||
case 1: xi /= static_cast<vtkm::Float32>(size-1); break;
|
||||
case 2: xi *= 2; break;
|
||||
case 3: xi *= 0.1f; break;
|
||||
case 4: xi *= xi; break;
|
||||
default: VTKM_TEST_FAIL("Bad internal test state: invalid fill method.");
|
||||
}
|
||||
arr[i] = xi;
|
||||
|
@ -103,7 +103,7 @@ void FillMethod(vtkm::IdComponent method,
|
||||
break;
|
||||
case 1:
|
||||
origin = 0;
|
||||
spacing = static_cast<T>(1.0/dimensionSize);
|
||||
spacing = static_cast<T>(1.0/static_cast<double>(dimensionSize));
|
||||
break;
|
||||
case 2:
|
||||
origin = 0;
|
||||
@ -120,7 +120,7 @@ void FillMethod(vtkm::IdComponent method,
|
||||
}
|
||||
|
||||
boundsMin = static_cast<vtkm::Float64>(origin);
|
||||
boundsMax = static_cast<vtkm::Float64>(origin + (dimensionSize-1)*spacing);
|
||||
boundsMax = static_cast<vtkm::Float64>(origin + static_cast<T>(dimensionSize-1)*spacing);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
|
@ -849,8 +849,8 @@ CellDerivative(const FieldVecType &field,
|
||||
fieldCenter = fieldCenter + field[pointIndex];
|
||||
wcoordCenter = wcoordCenter + wCoords[pointIndex];
|
||||
}
|
||||
fieldCenter = fieldCenter*FieldType(1.0f/numPoints);
|
||||
wcoordCenter = wcoordCenter*WCoordType(1.0f/numPoints);
|
||||
fieldCenter = fieldCenter*FieldType(1.0f/static_cast<float>(numPoints));
|
||||
wcoordCenter = wcoordCenter*WCoordType(1.0f/static_cast<float>(numPoints));
|
||||
|
||||
ParametricCoordType angle;
|
||||
if ((vtkm::Abs(pcoords[0]-0.5f) < 4*vtkm::Epsilon<ParametricCoordType>()) &&
|
||||
|
@ -276,7 +276,7 @@ CellInterpolate(const FieldVecType &field,
|
||||
{
|
||||
fieldCenter = fieldCenter + field[pointIndex];
|
||||
}
|
||||
fieldCenter = fieldCenter*FieldType(1.0f/numPoints);
|
||||
fieldCenter = fieldCenter*FieldType(1.0f/static_cast<float>(numPoints));
|
||||
|
||||
if ((vtkm::Abs(pcoords[0]-0.5f) < 4*vtkm::Epsilon<ParametricCoordType>()) &&
|
||||
(vtkm::Abs(pcoords[1]-0.5f) < 4*vtkm::Epsilon<ParametricCoordType>()))
|
||||
@ -305,13 +305,13 @@ CellInterpolate(const FieldVecType &field,
|
||||
polygonCoords[0][1] = 0.5f;
|
||||
polygonCoords[0][2] = 0;
|
||||
|
||||
polygonCoords[1][0] = 0.5f*(vtkm::Cos(deltaAngle*firstPointIndex)+1);
|
||||
polygonCoords[1][1] = 0.5f*(vtkm::Sin(deltaAngle*firstPointIndex)+1);
|
||||
polygonCoords[1][2] = 0;
|
||||
polygonCoords[1][0] = 0.5f*(vtkm::Cos(deltaAngle*static_cast<ParametricCoordType>(firstPointIndex))+1);
|
||||
polygonCoords[1][1] = 0.5f*(vtkm::Sin(deltaAngle*static_cast<ParametricCoordType>(firstPointIndex))+1);
|
||||
polygonCoords[1][2] = 0.0f;
|
||||
|
||||
polygonCoords[2][0] = 0.5f*(vtkm::Cos(deltaAngle*secondPointIndex)+1);
|
||||
polygonCoords[2][1] = 0.5f*(vtkm::Sin(deltaAngle*secondPointIndex)+1);
|
||||
polygonCoords[2][2] = 0;
|
||||
polygonCoords[2][0] = 0.5f*(vtkm::Cos(deltaAngle*static_cast<ParametricCoordType>(secondPointIndex))+1);
|
||||
polygonCoords[2][1] = 0.5f*(vtkm::Sin(deltaAngle*static_cast<ParametricCoordType>(secondPointIndex))+1);
|
||||
polygonCoords[2][2] = 0.0f;
|
||||
|
||||
vtkm::Vec<ParametricCoordType,3> trianglePCoords =
|
||||
vtkm::exec::internal::ReverseInterpolateTriangle(
|
||||
|
@ -802,7 +802,7 @@ WorldCoordinatesToParametricCoordinates(
|
||||
{
|
||||
wcoordCenter = wcoordCenter + pointWCoords[pointIndex];
|
||||
}
|
||||
wcoordCenter = wcoordCenter*WCoordType(1.0f/numPoints);
|
||||
wcoordCenter = wcoordCenter*WCoordType(1.0f/static_cast<float>(numPoints));
|
||||
|
||||
// Find the normal vector to the polygon. If the polygon is planar, convex,
|
||||
// and in general position, any three points will give a normal in the same
|
||||
|
@ -411,7 +411,7 @@ template<typename T>
|
||||
VTKM_EXEC_CONT_EXPORT
|
||||
T TestValue(vtkm::Id index, T, vtkm::TypeTraitsRealTag)
|
||||
{
|
||||
return T(0.01*index + 1.001);
|
||||
return T(0.01*static_cast<double>(index) + 1.001);
|
||||
}
|
||||
|
||||
/// Many tests involve getting and setting values in some index-based structure
|
||||
|
@ -46,7 +46,7 @@ struct DivideWorklet: public vtkm::worklet::WorkletMapField
|
||||
void operator()(const ValueType &v, const vtkm::Id &count, ValueType &vout) const
|
||||
{
|
||||
typedef typename VecTraits<ValueType>::ComponentType ComponentType;
|
||||
vout = v * ComponentType(1./count);
|
||||
vout = v * ComponentType(1./static_cast<double>(count));
|
||||
}
|
||||
|
||||
template <class T1, class T2>
|
||||
|
@ -330,7 +330,7 @@ public:
|
||||
vtkm::Float64 res[3];
|
||||
for (vtkm::IdComponent i=0; i<3; i++)
|
||||
{
|
||||
res[i] = (bounds[i*2+1]-bounds[i*2])/nDivisions[i];
|
||||
res[i] = (bounds[i*2+1]-bounds[i*2])/static_cast<vtkm::Float64>(nDivisions[i]);
|
||||
}
|
||||
gridInfo.grid_width = vtkm::Max(res[0], vtkm::Max(res[1], res[2]));
|
||||
|
||||
@ -342,9 +342,9 @@ public:
|
||||
gridInfo.dim[2] = vtkm::Min((vtkm::Id)vtkm::Ceil((bounds[5]-bounds[4])*inv_grid_width), nDivisions[2]);
|
||||
|
||||
// center the mesh in the grids
|
||||
gridInfo.origin[0] = (bounds[1]+bounds[0])*0.5 - gridInfo.grid_width*(gridInfo.dim[0])*.5;
|
||||
gridInfo.origin[1] = (bounds[3]+bounds[2])*0.5 - gridInfo.grid_width*(gridInfo.dim[1])*.5;
|
||||
gridInfo.origin[2] = (bounds[5]+bounds[4])*0.5 - gridInfo.grid_width*(gridInfo.dim[2])*.5;
|
||||
gridInfo.origin[0] = (bounds[1]+bounds[0])*0.5 - gridInfo.grid_width*static_cast<vtkm::Float64>(gridInfo.dim[0])*.5;
|
||||
gridInfo.origin[1] = (bounds[3]+bounds[2])*0.5 - gridInfo.grid_width*static_cast<vtkm::Float64>(gridInfo.dim[1])*.5;
|
||||
gridInfo.origin[2] = (bounds[5]+bounds[4])*0.5 - gridInfo.grid_width*static_cast<vtkm::Float64>(gridInfo.dim[2])*.5;
|
||||
}
|
||||
|
||||
//construct the scheduler that will execute all the worklets
|
||||
|
Loading…
Reference in New Issue
Block a user