anchor.diff:      /// <param name="b">The second input tensor.</param>
       /// <returns>The output tensor.</returns>
       /// <seealso cref="FillMap2``3"/><seealso cref="map``2"/><seealso cref="mapi2``3"/>
  +    /// <seealso cref="HostTensor.Parallel.map2``3"/>
       let map2 (fn: 'TA -> 'TB -> 'R) (a: Tensor<'TA>) (b: Tensor<'TB>) =
           let trgt, a, b = Tensor.PrepareElemwise (a, b)
           FillMap2 trgt fn a b
           trgt       
   
  -    /// <summary>Applies to specified indexed function to all elements of the two tensors using the specified tensor as target.</summary>
  +    /// <summary>Applies to specified indexed function to all elements of the two tensors using the specified tensor as 
  +    /// target.</summary>
       /// <typeparam name="'T">The type of the data.</typeparam>
       /// <param name="trgt">The output tensor to fill.</param>
       /// <param name="fn">A function that takes an index, the corresponding value from the first input and second input 
       /// tensor and returns the corresponding output value.</param>        
       /// <param name="a">The first input tensor.</param>
       /// <param name="b">The second input tensor.</param>
  -    /// <seealso cref="mapi2``3"/>
  +    /// <seealso cref="mapi2``3"/><seealso cref="HostTensor.Parallel.FillMapIndexed2``3"/>
       let FillMapIndexed2 (trgt: Tensor<'T>) (fn: int64[] -> 'TA -> 'TB -> 'T) (a: Tensor<'TA>) (b: Tensor<'TB>) = 
           let a, b = Tensor.PrepareElemwiseSources (trgt, a, b)
           (backend trgt).MapIndexed2 (fn=fn, trgt=trgt, a=a, b=b, useThreads=false)
  
positive.code:     /// the corresponding output value.</param>        
      /// <param name="a">The source tensor.</param>
      /// <returns>The output tensor.</returns>
      /// <seealso cref="FillMapIndexed``2"/><seealso cref="map``2"/>
      let mapi (fn: int64[] -> 'T -> 'R) (a: Tensor<'T>) =
          let trgt, a = Tensor.PrepareElemwise (a)
          FillMapIndexed trgt fn a
          trgt     
  
      /// <summary>Applies to specified function to all elements of the two tensors using the specified tensor as target.</summary>
      /// <typeparam name="'T">The type of the data.</typeparam>
      /// <param name="trgt">The output tensor to fill.</param>
      /// <param name="fn">A function that takes a value from the first input tensor and a value from the second input 
      /// tensor and returns the corresponding output value.</param>        
      /// <param name="a">The first input tensor.</param>
      /// <param name="b">The second input tensor.</param>
      /// <seealso cref="map2``3"/>
      let FillMap2 (trgt: Tensor<'T>) (fn: 'TA -> 'TB -> 'T) (a: Tensor<'TA>) (b: Tensor<'TB>) = 
          let a, b = Tensor.PrepareElemwiseSources (trgt, a, b)
          (backend trgt).Map2 (fn=fn, trgt=trgt, a=a, b=b, useThreads=false)
  
negative.code: /// It further contains functions that only work with tensors stored in host memory.
  /// Calling these functions with tensors stored on other devices will result in an
  /// <see cref="System.InvalidOperationException"/>.</remarks>
  /// <example><code language="fsharp">
  /// let x = HostTensor.zeros [3L; 3L]  // x.Dev = HostTensor.Dev
  /// </code></example>
  /// <seealso cref="Tensor`1"/><seealso cref="HostTensor.Parallel"/>
  module HostTensor =
  
  