SymbolicVal Max( const SymbolicVal &v1, const SymbolicVal &v2,
                       MapObject<SymbolicVal, SymbolicBound>* f)
         {  
            if (v1.IsNIL())
              return v2;
            if (v2.IsNIL())
              return v1;
            switch (CompareVal(v1,v2,f)) {
            case REL_NONE:
            case REL_UNKNOWN:
            case REL_NE:
               {
               SelectApplicator maxOp(1);
               return ApplyBinOP(maxOp,v1,v2); 
              }
           case REL_EQ:
           case REL_LT:
           case REL_LE:
               return v2;
           case REL_GT:
           case REL_GE:
               return v1;
           default:
              assert(0);
           }
        } 
Example #2
0
        __device__ __forceinline__ void reduceVal(typename TypeTraits<src_type>::parameter_type srcVal)
        {
            minimum<work_type> minOp;
            maximum<work_type> maxOp;

            mymin = minOp(mymin, srcVal);
            mymax = maxOp(mymax, srcVal);
        }