示例#1
0
文件: API.cs 项目: chrinide/bohrium
        /// <summary>
        /// Applies the operation to the input arrays
        /// </summary>
        /// <typeparam name="Ta">The type of input data to operate on</typeparam>
        /// <typeparam name="Tb">The type of output data to operate on</typeparam>
        /// <param name="op">The operation instance to use</param>
        /// <param name="in1">The left-hand-side input argument</param>
        /// <param name="in2">The right-hand-side input argument</param>
        /// <param name="out">The output target</param>
        public static NdArray <Tb> Apply <Ta, Tb>(IBinaryConvOp <Ta, Tb> op, NdArray <Ta> in1, NdArray <Ta> in2, NdArray <Tb> @out = null)
        {
            var method = typeof(UFunc).GetMethod("Apply_Entry_BinaryConv", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic);
            var gm     = method.MakeGenericMethod(typeof(Ta), typeof(Tb), op.GetType());

            return((NdArray <Tb>)gm.Invoke(null, new object[] { op, in1, in2, @out }));
        }
示例#2
0
 /// <summary>
 /// Register a pending conversion operation on the underlying array
 /// </summary>
 /// <param name="operation">The operation performed</param>
 /// <param name="output">The output operand</param>
 /// <param name="in1">An input operand</param>
 /// <param name="in2">An input operand</param>
 public virtual void AddConversionOperation <Ta>(IBinaryConvOp <Ta, T> operation, NdArray <T> output, NdArray <Ta> in1, NdArray <Ta> in2)
 {
     m_clock = LazyAccessorCollector.AddOperation(new PendingBinaryConversionOperation <T, Ta>(operation, output, in1, in2));
 }