anchor.diff:          mi.ParameterStorage.[!mgp.TrnSigma] <- trn_sigma_val
   
   
  -        ///generates random test inputs
  +        ///run GpTransferModel with random test inputs
           let randomTest () =
  +
  +            //generate random test inputs
               let inp_meanhost = rand.UniformArrayND (-5.0f ,5.0f) [1;ngps]
               let inp_mean_val = inp_meanhost |> post device
   
  
positive.code:     let post device (x: ArrayNDT<'T>) =
          if device = DevCuda then ArrayNDCuda.toDev (x :?> ArrayNDHostT<'T>) :> ArrayNDT<'T>
          else x 
      
      type trainData ={
          Lengthscale:    ArrayNDT<single>
          Trn_X:          ArrayNDT<single>
          Trn_T:          ArrayNDT<single>
          Trn_Sigma:      ArrayNDT<single>
          }
      type predOutput = {
         In_Mean:         ArrayNDT<single>
         In_Cov:          ArrayNDT<single>
         Pred_Mean:       ArrayNDT<single>
         Pred_Cov:        ArrayNDT<single>
         }
  
      let testMultiGPLayer device =
  
          
          let rand = Random()
  
          let ngps = 3
          let ntraining = 30
          let ntest = 2
  
          let cov: ExprT<single> = Expr.var "cov" [SizeSpec.broadcastable;SizeSpec.symbol "nGPs"; SizeSpec.symbol "nGPs"]
          let psd = cov.* cov
          let cmplr = DevHost.Compiler, CompileEnv.empty
          let fPsd = Func.make cmplr psd |> arg1 cov
  
  
          let mb = ModelBuilder<single> "Test"
  
          let nSmpls    = mb.Size "nSmpls"
          let nGPs      = mb.Size "nGPs"
          let nTrnSmpls = mb.Size "nTrnSmpls"
          
          let mgp = 
              MultiGPLayer.pars (mb.Module "MGP") {NGPs=nGPs; NTrnSmpls=nTrnSmpls}
          let inp_mean  : ExprT<single> = mb.Var "inp_mean"  [nSmpls; nGPs]
  
negative.code:             let inp_covhost = ArrayNDHost.zeros<single> [1;ngps;ngps]
              let inp_cov_val = inp_covhost |> post device
              
              //calculate predicted mean and variance
              let pred_mean, pred_cov = pred_mean_cov_fn inp_mean_val inp_cov_val
              
              //save inputs and predictions in sample datatype
              let testInOut = {
                  In_Mean = inp_meanhost;
                  In_Cov = inp_covhost;
                  Pred_Mean = pred_mean;
                  Pred_Cov = pred_cov}
  
              //print inputs and predictions
              printfn "Lengthscales=\n%A" mi.ParameterStorage.[!mgp.Lengthscales]
              printfn "TrnX=\n%A" mi.ParameterStorage.[!mgp.TrnX]
              printfn "TrnT=\n%A" mi.ParameterStorage.[!mgp.TrnT]
  