Ejemplo n.º 1
0
        public NArrayBool LogicalOperation(NArrayBool operand1, NArrayBool operand2, LogicalBinaryElementWiseOperation op)
        {
            var result = NewNArrayLike(operand1) as NArrayBool;

            Provider(operand1, operand2).LogicalOperation(operand1, operand2, result, op);
            return(result);
        }
Ejemplo n.º 2
0
 public abstract void LogicalOperation(NArrayBool a, NArrayBool b, NArrayBool result, LogicalBinaryElementWiseOperation operation);
        public override void LogicalOperation(NArrayBool a, NArrayBool b, NArrayBool result, LogicalBinaryElementWiseOperation operation)
        {
            bool[] aArray, bArray, resultArray;
            int    aStart, bStart, resultStart;

            GetArray(a, out aArray, out aStart);
            GetArray(b, out bArray, out bStart);
            GetArray(result, out resultArray, out resultStart);
            if (operation == LogicalBinaryElementWiseOperation.And)
            {
                for (int i = 0; i < result.Length; ++i)
                {
                    resultArray[resultStart + i] = aArray[aStart + i] && bArray[bStart + i];
                }
            }
            else if (operation == LogicalBinaryElementWiseOperation.Or)
            {
                for (int i = 0; i < result.Length; ++i)
                {
                    resultArray[resultStart + i] = aArray[aStart + i] || bArray[bStart + i];
                }
            }
        }
 public NArrayBool LogicalOperation(NArrayBool operand1, NArrayBool operand2, LogicalBinaryElementWiseOperation op)
 {
     throw new NotImplementedException();
 }