SimpleITK  1.0.1
itkDivideRealFunctor.h
Go to the documentation of this file.
1 /*=========================================================================
2 *
3 * Copyright Insight Software Consortium
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18 #ifndef itkDivideRealFunctor_h
19 #define itkDivideRealFunctor_h
20 
21 #include <itkNumericTraits.h>
22 
23 namespace itk
24 {
25 namespace Functor
26 {
31 template< class TInput1, class TInput2, class TOutput >
32 class DivReal
33 {
34 public:
35  // Use default copy, assigned and destructor
36  bool operator!=(const DivReal &) const
37  {
38  return false;
39  }
40 
41  bool operator==(const DivReal & other) const
42  {
43  return !( *this != other );
44  }
45 
46  inline TOutput operator()(const TInput1 & A, const TInput2 & B) const
47  {
48  if ( B != (TInput2)0 )
49  {
50  return static_cast<TOutput>( static_cast<typename NumericTraits<TInput1>::RealType>(A)
51  /
52  static_cast<typename NumericTraits<TInput2>::RealType >(B) );
53  }
54  else
55  {
56  return NumericTraits< TOutput >::max( static_cast<TOutput>(A) );
57  }
58  }
59 };
60 }
61 }
62 
63 #endif // itkDivisionRealImageFilter_h
TOutput operator()(const TInput1 &A, const TInput2 &B) const
bool operator!=(const DivReal &) const
bool operator==(const DivReal &other) const
static constexpr T max(const T &)